http1.1到http / 2什么样的版本标题和其他

时间:2016-05-21 21:49:02

标签: http2

在http 1.1中,状态行是

scheme/version code reason
HTTP/1.1 200 OK

我看到:方案和:HPACK规范中的状态标头。但是,我没有看到版本或原因的任何内容?没有吗?

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

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

我看到:方法,我看到:我认为路径只是一条相对路径,与完整的绝对路径不同(因为chrome和firefox正在推动https for http2,这可能有意义)。我看不到版本标题了吗?

是否有版本标题?或者是否看到在协议决定之前总是知道它并不是真的需要它?

原因代码怎么样?是假设它们是相当不变的,所以它消失了(我猜这里)。

感谢, 迪安

1 个答案:

答案 0 :(得分:4)

在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既没有版本也没有原因伪标头。