HTTP 1.0/1.1/2.0 的特点

HTTP 1.0 (1996年)

  • 仅提供了最基本认证,用户名及密码未加密,不安全。
  • 使用短连接,每次发送数据都会经过TCP三次握手和四次挥手,效率低。
  • 只使用 header 中的 If-Modified-Since 和 Expires 作为缓存失效的标准。
  • 不支持断点续传,每次都会传送全部页面和数据。
  • 认为每台计算机只绑定一个IP,因此请求消息中的URL 并没有传递主机名。

HTTP 1.1 (1999年)

  • 使用摘要算法进行身份验证
  • 默认使用长连接,只需要建立一次连接就可以传输多次数据。连接时长通过请求头中的 keep-alive来设置。
  • 增加 E-tag,If-Unmodified-Since,If-Match,If-None-Match 等缓存控制标头来控制缓存失效。
  • 支持断点续传,通过使用请求头中的 Range 来实现。
  • 使用虚拟网络,可以支持虚拟机共享同一个IP地址。

HTTP 2.0 (2015年)

  • 使用 HPACK 算法进行头部压缩,HTTP 1.1 会出现cookie、user-agent 等字段占用几百个字节,导致头部偏重。  
  • 使用二进制格式而非ASCII码,提升了解析效率。
  • 强化安全,HTTP 2.0 跑在 HTTPS 上。
  • 多路复用,每个请求都是作为连接共享,一个请求对应一个id,一个连接上可以多个请求。

以上总结参考 https://mp.weixin.qq.com/s/qetBsYmDqwi_nJVnKmBw8Q      

posted @ 2020-12-07 20:48  smallzhen  阅读(208)  评论(0编辑  收藏  举报