HTTP1.0/1.1/2.0的区别

一、http 1.0 与 1.1

1.0在网页中的使用是在1996年,而1.1却在才开始应用在广大浏览器的网络请求中。

1.缓存处理,1.0中主要通过请求头中的If-Modified-Since,Expires来做为缓存判断的标准,而在1.1中则引入了更多的缓存控制策略如Enity tag,if-unmodified-since,if-match等更多可控制的缓存头来控制缓存策略。

2.网络链接使用的优化。在1.0中,很多用户请求的只是某个对象的一部分,服务器却将整个用户回传,并且不支持断电传输的功能,导致资源浪费,而在1.1中设置了range头域,它允许只请求资源的某个部分,及返回码为206。

3.错误通知的处理,在1.1中新添加了24个错误状态的响应码如409表示请求资源与资源当前的状态发生冲突,410表示某个资源并永久的删除。

4.在1.1中支持长连接和请求的流水线(pipelining)默认开启了connection:keep-alive,即一次tcp链接中可以处理多个请求,而在1.0中每一个请求就要开启一次tcp链接,十分浪费资源。

二、http2.0比http1.x的优化

1.新的二进制解析格式,http1.x中解析是基于文本的,而文本的表现形式多种多样,要做到健壮性必然要考虑很多东西,而二进制则只包括0和1,基于二进制解析的话方便且健壮。

2.多路复用(multiplexing)连接共享,即每一个requests都是用作链接共享机制的。一个request对应一个id,这样一个连接上有多个request,每个连接的request可以随机的混杂在一起,接收方根据他们的id将他们归属到不同的服务器端里面。即http2中多个请求可以在一个连接上并行执行。

3.header压缩,使用encoder来减少需要传输的header的大小。

 

posted @ 2020-03-24 14:11  web黄金矿工  阅读(700)  评论(0编辑  收藏  举报
Live2D