前端基础-HTTP

http和https

  • http:超文本传输协议,是互联网应用最广泛的网络协议
  • https:以安全为目标的http通道,是http的安全版
  • https主要作用是:建立一个信息安全通道,来确保数据传输时的安全性,网站的真实性

http与https的区别

  • http传输的数据是未加密的,https是加密传输协议,https比http更安全
  • https协议需要ca证书,费用较高
  • 端口号不同,http端口为80,https端口为443

http2.0

  • http2.0是1999年发布的http1.0之后的首次更新
  • 提高了访问速度
  • 多路复用:http1.0同一时间访问资源的数量是有限制的,超过限制就会导致阻塞,http2.0允许同时发送多个请求
  • 二进制分帧:http2.0将发送的信息分割成更小的信息或帧,并且进行二进制编码

TCP和UDP的区别

  • TCP面向连接,UDP面向无连接
  • TCP面向字节流,UDP面向报文
  • TCP是面向连接的可靠性传输,UDP不可靠
  • TCP只能是1对1,UDP支持1对1,1对多

Cookie、sessionStroage、localStroage的区别

  • 存储大小不同
    • cookie存储的大小只有4k左右
    • sessionStroage和localStroage可以保存5M的信息
  • 数据有效期不同
    • sessionStroage:仅在当前的浏览器关闭前有效,
    • localStroage:始终有效,即使浏览器关闭数据也不会消失
    • cookie:只有设置cookie过期时间之前有效,即使窗口和浏览器关闭
  • http请求
    cookie:每次请求都会携带Cookie
    其他两个:仅在浏览器中保存,不会发送请求

cookie session区别

  • cookie数据存放在客户的浏览器上,session数据存放在服务器上
  • cookie不是很安全,别人可以分析存放在本地的cookie进行欺骗,考虑安全应当使用session
  • session会在一定时间内保存在服务器上,一旦访问增多,会占用服务器性能,考虑性能应当使用cookie

知道的http状态码

  • 200:请求成功
  • 201:已创建,并创建了新的资源
  • 202:已接受,已经接受请求,但未处理完成
  • 301:永久重定向
  • 302:临时重定向
  • 400:客户端请求语法错误
  • 401:请求需要用户验证
  • 403:请求成功,但拒绝执行
  • 404:未找到资源
  • 405:请求的方法被静止
  • 500:服务器内部错误
  • 501:服务器不支持请求的功能,无法完成请求

http常用请求头

  • Accept:可接受的响应内容类型(content-types)
  • Accept-charset:可接受的字符集
  • Accept-Encoding:可接受的响应内容的编码方式
  • Accept-Language:可接受的响应内容语言列表
  • Accept-Datetime:可接受的按时间来表示响应内容版本
  • Cache-Control:用来指定当前的请求/回复中的,是否需要缓存机制
  • Connection:客户端想要优先连接的连接类型
  • Content-type:请求体类型
  • Host:服务器的域名和端口号
  • Origin:发起一个针对跨域资源共享的请求

强缓存、协商缓存

缓存分为两种:强缓存和协商缓存

  • 强缓存:不会向服务器发送请求,直接从缓存中读取数据,返回200状态码
  • 协商缓存:强缓存失效后,浏览器携带缓存表示向服务器发送请求,服务器根据缓存标识决定是否使用缓存的过程
  • 强缓存相关字段有expires,cache-control,如果这两个字段同时存在,cache-control的优先级高于expires
  • 协商缓存相关字段有last-modify/if-modified-Since,Etag/if-None-Match

前端优化

  • 降低请求量,减少请求数,使用图片懒加载
  • 加快请求速度:与解析DNS,减少域名数,使用CDN
  • 缓存:http协议缓存、localStroage离线数据缓存
  • 渲染:js/css优化,加载顺序,服务端渲染
  • 代码压缩

GET和POST的区别

get参数通过url传递,post放在request body中
get请求参数有长度限制(1024个字符),post长度限制在(4-10mb)
get比post更不安全,get会直接暴露在url中
get请求只能进行url编码,post支持多种编码方式
get请求会被浏览器主动cache
get请求会完整保存在浏览历史记录里,post不会保留
get产生一个tcp数据包,post产生两个tcp数据包

301和302的区别

  • 301永久重定向,302临时重定向
  • 301使用场景是使用域名跳转,302用作临时跳转,比如未登录重定向到登录页面

200和304的区别

  • 200:请求成功。一般用于get和post请求
  • 304:请求资源未修改,不会访问任何资源,客户端会缓存访问过的资源,通过提供一个头信息指出客户端希望只返回在指定日期之后修改的资源

HTTP支持的方法

  • get
  • post
  • put
  • delete
  • head
  • options
  • patch

csrf和xss网络攻击及防范

csrf:跨站请求伪造,盗用用户身份,以用户名义发送恶意请求
-防范:验证 HTTP Referer 字段;在请求地址中添加 token 并验证;在 HTTP 头中自定义属性并验证。
xss:跨站脚本攻击,通过注入js脚本,在用户浏览网页时候进行攻击
- 防范:cookie设置为httpOnly属性,对用户的输入进行检查,进行特殊字符过滤

输入URL到页面加载显示完成发生了什么

  • DNS解析
  • TCP连接
  • 发送http请求
  • 服务器处理请求并返回http报文
  • 关闭TCP连接
  • 解析HTML
  • 下载css
  • 解析css
  • 下载js
  • 解析js
  • 下载图片
  • 解析图片
  • 渲染DOM树
  • 渲染样式树
  • 执行js

你可能感兴趣的:(前端基础)