Http1.0,Http1.1,Http2.0,Http3比较

the different between Http1.0,Http1.1,Http2.0,Http3

Posted by wuqiuyu on March 4, 2019

Http1.0:

  • 请求头和响应头
  • Cache机制
  • 每进行一次HTTP通信,都需要经历建立TCP连接、传输HTTP数据和断开TCP连接三个阶段

Http1.1:

  • 持久连接,浏览器中对于同一个域名,默认允许同时建立6个TCP持久连接
  • 存在队头阻塞的问题
  • 增加了Host字段,提供虚拟主机的支持
  • 对动态生成的内容提供了完美支持
  • 客户端Cookie、安全机制

缺点:

  1. 对带宽的利用率却并不理想

    • TCP的慢启动。
    • 开启了多条TCP连接,那么这些连接会竞争固定的带宽。
    • HTTP/1.1队头阻塞的问题

Http2:

一个域名只使用一个TCP长连接来传输数据,这样整个页面资源的下载过程只需要一次慢启动,同时也避免了多个TCP连接竞争带宽所带来的问题。实现资源的并行请求,也就是任何时候都可以将请求发送给服务器,而并不需要等待其他请求的完成,然后服务器也可以随时返回处理好的请求资源给浏览器。

HTTP/2使用了多路复用技术,可以将请求分成一帧一帧的数据去传输,这样带来了一个额外的好处,就是当收到一个优先级高的请求时,比如接收到JavaScript或者CSS关键资源的请求,服务器可以暂停之前的请求来优先处理关键资源的请求。

  • 多路复用是通过在协议栈中添加二进制分帧层来实现的
  • 可以设置请求的优先级
  • 服务器推送,HTTP/2还可以直接将数据提前推送到浏览器
  • 头部压缩

Http3:

一个域名只使用一个TCP长连接来传输数据,这样整个页面资源的下载过程只需要一次慢启动,同时也避免了多个TCP连接竞争带宽所带来的问题。实现资源的并行请求,也就是任何时候都可以将请求发送给服务器,而并不需要等待其他请求的完成,然后服务器也可以随时返回处理好的请求资源给浏览器。

HTTP/2使用了多路复用技术,可以将请求分成一帧一帧的数据去传输,这样带来了一个额外的好处,就是当收到一个优先级高的请求时,比如接收到JavaScript或者CSS关键资源的请求,服务器可以暂停之前的请求来优先处理关键资源的请求。

  • 多路复用是通过在协议栈中添加二进制分帧层来实现的
  • 可以设置请求的优先级
  • 服务器推送,HTTP/2还可以直接将数据提前推送到浏览器
  • 头部压缩

Https:

http是明文传输。

SSL/TSL加密:安全层有两个主要的职责:对发起HTTP请求的数据进行加密操作对接收到HTTP的内容进行解密操作