【每日随记】HTTP 1.0、2.0 的区别
2022-09-17 / 0 评论 / 53 阅读 / 3 点赞

【每日随记】HTTP 1.0、2.0 的区别

发光的神
2022-09-17 / 0 评论 / 53 阅读 / 正在检测是否收录...

测试效果

lhomv47m.png

测速地址:https://http2.akamai.com/demo
这个测试还是不太标准,有的时候http/2反而更慢点。。。

发展历程

最早网页使用是在1996年,用在那个时候网页上网络请求上,而http1.1在1999年开始广泛应用于现在的各大浏览器网络请求中,同时http1.1也是当前使用最为广泛的http协议。

http1.0

http1.0 默认使用Connection: cloose 浏览器每次请求逗需要与服务器建立连接,服务器处理完成后立即断开TCP连接(无连接)服务器不跟踪每个客户端也不记录过去请求(无状态)

http1.1

http1.1 默认使用Connection: keep-alive (长连接), 避免了连接和释放的开销; 通过Content-Length 字段来判断当前的请求数据是否已经全部接受了,不允许两个并行响应。

  • 为什么要持久链接
    http协议初始化版本中,每进行一次http通信就要断开一次TCP连接。每次请求都会造成TCP连接建立和断开,增加通信量的开销。
  • 持久连接的特点
    持久连接也称为 http keep-alive , 只要任意一端没有提出断开连接,就会保存TCP连接状态。
    减少TCP连接的重复建立和断开造成的额外开销,减去了服务器的压力
    持久连接使得多数请求以管线化方式(pipelining)成为可能。可以同时并行发送多个请求,而不需要一个接一个的等待响应了。(请求打包一次传输过去,响应打包一次传递回来),管线化的前提是在持久连接下。

Http1.1缺陷
(1)高延迟,带来页面加载速度的降低。(网络延迟问题只要由于队头阻塞,导致宽带无法被充分利用)
(2)无状态特性,带来巨大的Http头部。
(3)明文传输,不安全。
(4)不支持服务器推送消息。

http2.0

SPDY协议:2009年谷歌公开的协议主要解决http1.1效率不高问题。
SPDY被当做HTTP2.0的基础,其主要特性(兼容老版本HTTP协议,同时可以使用SSL功能)都在HTTP2.0中得到继承。
HTTP2.0:基于SPDY,专注于性能,目标是在用户和网站直接只用一个连接。

HTTP2.0新特性
(1)二进制传输
http2.0将请求和响应数据分割为更小的帧,并且它们采用二进制编码(http1.0基于文本格式)。多个帧之间可以乱序发送,根据帧首部的流表示可以重新组装。

(2)Header压缩
Http2.0开发了专门的“HPACK”算法,大大压缩了Header信息。

(3)多路复用
http2.0中引入了多路复用技术,很好的解决了浏览器限制同一个域名下的请求数量的问题。
多路复用技术可以只通过一个TCP链接就可以传输所有的请求数据。

(4)服务端推送
HTTP2.0在一定程度上改不了传统的“请求-应答”工作模式,服务器不再完全被动地响应请求,也可以新建“流”主动向客户端发送消息。(例如,浏览器在刚请求html的时候就提前把可能会用到的JS,CSS文件发送给客户端,减少等待延迟,这被称为“服务端推送Server Push”)
服务器也不能随便将第三方资源推送给服务器,必须经过双方确认。

HTTP2.0缺点
(1)TCP以及TCP+TLS建立连接的延迟(握手延迟)
(2)TCP的队头阻塞没有彻底解决(http2.0中,多个请求是跑在一个TCP管道中的,一旦丢包,TCP就要等待重传(丢失的包等待重新传输确认),从而阻塞该TCP连接中的所有请求)
因为HTTP2.0存在这些缺点,所以出现了HTTP3.0。

Http3.0

Google在推行SPDY的时候意识到了上述http2.0一系列问题,于是又产生了基于UDP协议的“QUIC”协议,让HTTP跑在QUIC上而不是TCP上。从而产生了HTTP3.0版本,它解决了“队头阻塞”的问题。

特点:
(1)实现了类似TCP的流量控制,传输可靠性的功能。
(2)实现了快速握手功能(QUIC基于UDP,UDP是面向无连接的,不需要握手和挥手,比TCP快)
(3)集成了TLS加密功能
(4)多路复用,彻底解决TCP中队头阻塞的问题(单个“流”是有序的,可能会因为丢包而阻塞,但是其他流不会受到影响)

总结

HTTP1.1的缺点:安全性不足和性能不高;
HTTP2.0完全兼容HTTTP1.0,是“更安全的HTTP,更快的HTTPS”,头部压缩,多路复用等技术充分利用了带宽,降低了延迟。
HTTP3.0的底层支撑协议QUIC基于UDP实现,又含TCP的特点,实现了又快又可靠的协议。

3

评论 (0)

取消
0:00