在HTTP 1.1中,状态行为
scheme/version code reason
HTTP/1.1 200 OK
Run Code Online (Sandbox Code Playgroud)
我在HPACK规范中看到了:scheme和:status标头。但是,我没有看到任何版本或原因?没有一个吗?
在HTTP 1.1中的请求中,请求行是
method uri scheme/version
POST http://myhost.com HTTP/1.1
Run Code Online (Sandbox Code Playgroud)
我看到了:method和我看到的:path,我认为这只是一个相对路径,与完整的绝对路径不同(并且由于Chrome和Firefox将HTTPS推送为HTTP / 2,所以这可能是有道理的)。我没有看到版本头。
有版本标头吗?还是在协议决定之前就已经知道了这一点,因此并不需要它?
那原因码呢?是否假设这些参数非常恒定以至于消失(我在这里猜测)?
在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既没有版本也没有理由伪头。
| 归档时间: |
|
| 查看次数: |
661 次 |
| 最近记录: |