HTTP发展史

114 阅读1分钟

http0.9

  1. 只有get请求
  2. 服务端返回的格式只有html文本
  3. 服务端响应对应数据之后就自动关闭链接

http1.0

  1. 图像、视频、文字等富文本信息都支持传输
  2. 新增get、put等请求
  3. 新增http header,状态码,缓存等基本功能
  4. 每次请求完毕之后依旧会自动断开链接

http1.1

  1. 新增Connection: keep-alive,请求结束之后,依旧保持连接。客户短发送Connection: close的参数,要求服务端关闭链接

  2. 管道机制

  • 允许客服端一次发送多个请求,然后服务端依次处理请求内容【头部队列阻塞】
  • content-length用于识别不同的请求
  1. 分块传输编码
  • http/1.1 200 ok
  • Content-type: text/plain
  • Transfeer-Encoding: chunked
  1. 又新增多种请求方式:PATCH、HEAD、OPTIONS、DELETE等请求方式

http2.0

  1. 二进制传输数据(参数优化策略) 原先http1.1的时候,头部信息使用文本信息传输,body信息可以使用文本或着二进制传输,但是http2.0为了后边更好的扩展性和提高性能,将其全部统一为二进制传输

  2. 服务端主动推动。 例如:websocket

  3. 多路复用 解决【头部队列阻塞】,ABCD四个请求,A耗时较大,A处理部分立马返回,然后处理后面的请求

  4. 数据流 帧,用于标记请求和响应之间的关系

  5. 头部压缩 HPACK:可以简单理解为客服端和服务端分别维护一张表,传输索引。

总结

  1. 文本传输格式越来丰富
  2. 发展中兼容前面版本