http不同版本及特性概括

HTTP(HyperText Transfer Protocol)是互联网应用中最常见的一种协议。

HTTP 0.9

1991年,Tim Berners-Lee概述。

  • 特性:

    • 客户端/服务器,请求/响应;
    • ASCII协议,运行于TCP/IP链接之上;
    • 传输超文本文档(HTML);
    • 服务器和客户端之间的连接在每次请求之后都会关闭;
  • http逃逸原理
    由于http0.9协议没有响应头。大多数防火墙产品只是简单地让它无法分析的数据包直接通过,对HTTP/0.9的响应包没有做进一步检测。导致http/0.9协议传输的响应包可以绕过防火墙。

HTTP 1.0

1996年,HTTP工作组发布 RFC 1945。

  • 特性:
    • HTTP1.0并不是一个正式的规范或标准
    • 请求可以由多行首部字段构成;
    • 响应对象前面包含响应状态行;
    • 响应对象包含由换行符分割的首部字段;
    • 响应对象不局限于超文本;
    • 服务器和客户端之间的连接在每次请求之后都会关闭;

HTTP1.1

1997年1月,定义正式http1.1标准的RFC2068发布;1999年6月,RFC2616发布,在标准中集合了很多改进和更新。

  • 特性:
    • 默认持久连接
    • 分块编码传输
    • 字节范围请求
    • 增强的缓存机制
    • 传输编码及请求管道
    • 内容编码字符集以及语言的协商机制

HTTP 2.0

2012年1月,HTTP 2.0纲领发布。

  • 特性:

    • 主要目标是改进传输性能,实现低延迟和高吞吐量
    • 二进制分帧
    • 异步连接
    • 多路复用
    • 头部压缩
    • 流量控制
    • 请求响应管线化(管道Pipelining传输)
    • 请求优先级
    • 服务器推送
  • 参考

    • Ilya, Grigorik. Web性能权威指南[M]. 人民邮电出版社, 2014.