HTTP 0.9 和 HTTP 1.0
HTTP 0.9 只有一个简单的get方法,没有首部,设计目标就是为了获取HTML(没有图片,只有文本)
HTTP 1.0 是 0.9版本的一个完善,包含了:
- 首部
- 响应码
- 重定向
- 内容编码
- 更多请求方法
HTTP 1.1
引入的持久链接,即TCP连接默认不关闭,可以被多个请求复用;
加入了管道机制,允许在一个TCP连接里面同时发送多个请求,增加了并发;
但是服务器只能顺序处理请求,造成“队头阻塞”
增加了新的请求方式PUT、PATCH、OPTIONS等
客户端请求增加了HOST字段
HTTP 2.0
不用按顺序一一回复请求,避免了“队头阻塞”
允许服务器未经请求,主动向客户端发送请求,即服务器推送
头部和数据体都是二进制,称为头信息帧和数据帧
引入头信息压缩机制,头信息使用gzip或compress压缩后发送,客户端和服务器同时维护一张头信息表,所有字段都会存入表中,生成一个索引号,不发送同样字段只发送索引号提高速度