2020-08-31:描述HTTP的版本之间的区别,主要是1.0/1.1/2.0三个版本的区别。

Posted 福大大架构师每日一题

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2020-08-31:描述HTTP的版本之间的区别,主要是1.0/1.1/2.0三个版本的区别。相关的知识,希望对你有一定的参考价值。

福哥答案2020-08-31:


HTTP1.0与HTTP1.1的主要区别 

1.长连接

HTTP1.0:需要使用keep-alive参数来告知服务器端要建立一个长连接。

HTTP1.1:默认支持长连接。

2.消息传递

HTTP1.0:允许即使有Body也不用Content-Length,可以用断开连接的方式表示Body结束。

HTTP1.1:要求必须使用Content-Length或者chunk-encode。

3.节约带宽

HTTP1.0:不支持部分发送信息。

HTTP1.1:①支持只发送header信息(不带任何body信息),如果服务器认为客户端有权限请求服务器,则返回100,否则返回401。客户端如果接收到100,才开始把请求body发送到服务器。这样当服务器返回401的时候,客户端就可以不用发送请求body了,节约了带宽。②另外还支持传送内容的一部分。这样当客户端已经有一部分的资源后,只需要跟服务器请求另外的部分资源即可。这是支持文件断点续传的基础。

4.HOST域

HTTP1.0:没有host域。

HTTP1.1:支持这个参数。

5.缓存处理

HTTP1.0:无。

HTTP1.1:添加更多的缓存控制策略(如:Entity tag,If-Match)。ETag头域。Cache-Control头域。Vary头域。

6.错误提示

HTTP1.0:只定义了16个状态响应码,对错误或警告的提示不够具体。

HTTP1.1:引入了一个Warning头域,增加对错误或警告信息的描述。此外,新增了24个状态响应码,如409(Conflict)表示请求的资源与资源的当前状态发生冲突;410(Gone)表示服务器上的某个资源被永久性的删除。


HTTP1.1与HTTP2.0的主要区别 

1.多路复用

HTTP1.1:可以多建立几个TCP连接,来支持处理更多并发的请求,但是创建TCP连接本身也是有开销的。

HTTP2.0:使用了多路复用的技术,做到同一个连接并发处理多个请求,而且并发请求的数量比HTTP1.1大了好几个数量级。

TCP连接有一个预热和保护的过程,先检查数据是否传送成功,一旦成功过,则慢慢加大传输速度。因此对应瞬时并发的连接,服务器的响应就会变慢。所以最好能使用一个建立好的连接,并且这个连接可以支持瞬时并发的请求。

2.二进制分帧

HTTP1.1:无。

HTTP2.0:应用层(HTTP/2)和传输层(TCP or UDP)之间增加一个二进制分帧层。

3.首部压缩

HTTP1.1:不支持header数据的压缩。

HTTP2.0:使用HPACK算法对header的数据进行压缩,这样数据体积小了,在网络上传输就会更快。

4.服务器推送

HTTP1.1:Server Push 让HTTP1.x时代使用内嵌资源的优化手段变得没有意义。

HTTP2.0:服务器可以对客户端的一个请求发送多个响应。

***

[评论](https://user.qzone.qq.com/3182319461/blog/1598828478)


以上是关于2020-08-31:描述HTTP的版本之间的区别,主要是1.0/1.1/2.0三个版本的区别。的主要内容,如果未能解决你的问题,请参考以下文章

HTTP/0.9HTTP/1.0HTTP/1.1HTTP/2HTTP/3各版本之间的区别?

Play Framework 1.2.5.1 和 1.2.6 版本之间的区别?

HTTP各版本的区别

[Spring实战系列](19)Servlet不同版本之间的区别

HTTP各版本的区别

HTTP请求方法中中GET和POST的区别(详细描述)