HTTP 1.0 | 1.1 | 2.0 区别
【1】 1.0 VS 1.1 区别:
(1)长链接:HTTP 1.1 默认使用长链接,即在多次请求时,只需要一次 TCP 连接,接下来请求响应、请求响应......不需要每次请求都要建立一次 TCP 连接,而 HTTP 1.0 默认是短链接,需要 使用头部字段 Connection:keep-alive 保持长链接.
(2)管线化:HTTP 1.1 可以实现管线化,即在多次请求时,不需要等第一次请求得到响应就可以发出第二次请求。
(3)缓存处理字段:HTTP 1.0 主要使用 Expires【强制缓存字段】、If-Modified-Since、Last-Modified【协商缓存字段】,HTTP 1.1 引入 Cache-Control:max-age【强制缓存】、If-Match、If-None-Match、Etag等【协商缓存字段】控制处理缓存。
(4)Host 字段:HTTP 1.1 要求请求必须包含 Host 头字段,因为一个服务器 IP 地址可能对应多个域名。
(5)断点续传:HTTP 1.1 引入 Range 字段,支持范围请求。【下载遇到网络波动中断,则我们希望从中断处下载,不希望重头开始下载,则需要范围请求——断点续传】
(6)新增24个状态码,但我记不住~
(7)新增多个请求方法:PUT、DELETE、TRACE、CONNECT、OPTIONS
【2】HTTP 2.0 新特性:
(1)服务端推送:客户端在请求一个资源时,服务器会将相关资源一并发送,这样客户端不需要发送多次请求。【联想到了 Web Socket 全双工通信】
(2)头部信息压缩:HTTP 1.1 中,头部字段信息过多,且每次都需要重新发送,HTTP 2.0 采用编码格式,减少了头部字段信息量,同时客户端和服务器端双方各保存了一份头部字段表,避免了头部字段重复传送.
(3)多路复用:在 HTTP 1.1 中我们为了防止多次请求时每次请求都要建立 TCP 连接,采用了 长连接 优化,但是长连接在建立起一次 TCP 连接后,发送的数据必须是有序的,无法并行传送数据,因此只是减少了建立连接的时间,而获取响应的时间并没有减少。而多路复用技术,采用二进制数据帧对顺序进行标识,这样不按照顺序发送也可以在服务器端正确合并数据,因此可以并行发送数据。

浙公网安备 33010602011771号