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

举报
福大大架构师每日一题 发表于 2020/08/31 22:04:57 2020/08/31
【摘要】 福哥答案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-enco...

福哥答案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:服务器可以对客户端的一个请求发送多个响应。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。