繁体   English   中英

HTTP1.1 到 HTTP/2:标题怎么样?

[英]HTTP1.1 to HTTP/2: what about headers?

在 HTTP 1.1 中,状态行是

scheme/version code reason
HTTP/1.1 200 OK

我在 HPACK 规范中看到 :scheme 和 :status 标头。 但是我没有看到任何版本或原因? 没有一个吗?

在 HTTP 1.1 中的请求中,请求行是

method uri scheme/version
POST http://myhost.com HTTP/1.1

我看到 :method 和 :path,我认为这只是一个相对路径,与完整的绝对路径不同(并且由于 Chrome 和 Firefox 正在为 HTTP/2 推送 HTTPS,这可能是有道理的)。 虽然我没有看到版本标题。

有版本头吗? 或者是否看到这在协议决定之前总是已知的,因此它不是真正需要的?

原因码呢? 是否假设这些是相当恒定的,这样就消失了(我在这里猜测)?

在 HTTP/1 中,需要版本令牌来区分 HTTP/1.0 和 HTTP/1.1,因为它们具有相同的线路表示,但支持不同的功能。

例如,客户端声明 HTTP/1.1 隐式地告诉服务器它支持持久连接和内容分块。

使用 HTTP/2,协议版本是协商的

在明文 HTTP/2 中, Upgrade标头报告h2c ,其中2表示协议的第2版。 我想对于 HTTP/3 令牌将更改为h3c 类似的情况发生在加密的 HTTP/2 中,其中令牌h2是通过 ALPN 协商的。

原因消息被认为是多余的,因为状态代码已经传达了所有必要的信息(更不用说它们可能是攻击媒介)。

由于这些原因,HTTP/2 既没有版本也没有原因伪标头。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM