HTTP1和HTTP11区别及HTTP2 - Go语言中文社区

HTTP1和HTTP11区别及HTTP2


HTTP/1.0与HTTP/1.1的区别及HTTP/2.0

一、HTTP/1.0和HTTP/1.1的区别

参考博文缓存

  • HTTP/1.1 默认是持久连接
  • HTTP/1.1 支持流水线
  • HTTP/1.1 支持虚拟主机
  • HTTP/1.1 新增状态码 100
  • HTTP/1.1 支持分块传输编码
  • HTTP/1.1 新增缓存处理指令 max-age

二、HTTP/2.0

、2.1HTTP/1.x的缺陷

  • 客户端需要使用多个连接才能实现并发和缩短延迟
  • 不会压缩请求和响应标头,从而导致不必要的网络流量;
  • 不支持有效的资源优先级,致使底层 TCP 连接的利用率低下。

2.2、二级制分帧层

HTTP/2.0 将报文分成 HEADERS 帧和 DATA 帧,它们都是二进制格式的。

在通信过程中,只会有一个 TCP 连接存在,它承载了任意数量的双向数据流(Stream)。一个数据流都有一个唯一标识符和可选的优先级信息,用于承载双向信息。消息(Message)是与逻辑请求或响应消息对应的完整的一系列帧。帧(Fram)是最小的通信单位,来自不同数据流的帧可以交错发送,然后再根据每个帧头的数据流标识符重新组装。

2.3、服务器推送

HTTP/2.0 在客户端请求一个资源时,会把相关的资源一起发送给客户端,客户端就不需要再次发起请求了。例如客户端请求 page.html 页面,服务端就把 script.js 和 style.css 等与之相关的资源一起发给客户端。

2.4、首部压缩

HTTP/1.1 的首部带有大量信息,而且每次都要重复发送。HTTP/2.0 要求客户端和服务器同时维护和更新一个包含之前见过的首部字段表,从而避免了重复传输。不仅如此,HTTP/2.0 也使用 Huffman 编码对首部字段进行压缩。

这里写图片描述

版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/HnuWyd/article/details/80348816
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2020-03-01 19:56:42
  • 阅读 ( 1326 )
  • 分类:

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢