【问题标题】:What is the difference between HTTP 1.1 and HTTP 2.0? [closed]HTTP 1.1 和 HTTP 2.0 有什么区别? [关闭]
【发布时间】:2015-04-19 22:53:21
【问题描述】:

HTTP/1.1 已经为 Web 服务了超过 15 年,但它的 年龄开始显现了。

谁能解释一下 HTTP 1.1 和 2.0 之间的主要区别是什么?

传输协议有变化吗?

【问题讨论】:

  • 这个视频看起来很适合谈论这些话题youtube.com/watch?v=0L5Q_897fwk
  • tools.ietf.org/html/rfc7540 的“简介”部分是 HTTP 1.1 和 HTTP 2.0 之间区别的最纯粹和最好的来源
  • @bayCoder - 确实如此。我发现 RFC 介绍/摘要通常是主题的最佳高级概述之一。

标签: http tcp webserver http2


【解决方案1】:

HTTP/2 支持查询复用、报头压缩、优先级和更智能的数据包流管理。这可以减少延迟并加速现代网页上的内容下载。

More details here.

【讨论】:

【解决方案2】:

HTTP 2.0 是一种二进制协议,它通过单个(通常是 TLS 加密的)TCP 连接多路复用多个流。

每个流的内容都是 HTTP 1.1 请求和响应,只是编码和打包方式不同。 HTTP2 添加了许多功能来管理流,但保持旧语义不变。

【讨论】:

  • TLS 加密不是可选的。根据协议,它可能是可选的,但在现实世界中不是。 Chrome 和其他浏览器不会接受没有 https 的 http2。因此,在现实世界中,如果您启用 http2 而不在服务器上安装证书,则浏览器只会连接 http1。
  • @PatrickCollins 实际上浏览器将连接到 HTTP2,但只会启动二进制数据包流的下载。他们只是不知道如何在没有 SSL 的情况下显示 HTTP2 内容。
  • 这个答案在断言 http/2 只是打包和编码 http/1.1 请求时具有误导性。有具体的区别。例如,标头与正文/有效负载分开发送。此外,标头格式略有变化——在 http/1.x 中,方法、uri、响应代码和协议版本在第一行中传递,称为请求行。 http/2 引入了 psuedoheaders 的概念,放在所有其他 headers 之前,并以 : 为前缀来处理这些方面,除了协议版本,它在 http/2 中没有等效项。
  • 另外,虽然标头不区分大小写,但协议要求以小写形式传输。
猜你喜欢
  • 2010-10-11
  • 2016-04-01
  • 2013-02-01
  • 2012-01-25
  • 2011-06-03
  • 2015-02-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多