对于 HTTP/0.9:
GET /
对于 HTTP/1.0:
GET / HTTP/1.0
对于 HTTP/1.1:
GET / HTTP/1.1
Host: example.com
HTTP/2 的请求行是什么?是不是像:
GET / HTTP/2.0
还是 HTTP/2?
对于 HTTP/0.9:
GET /
对于 HTTP/1.0:
GET / HTTP/1.0
对于 HTTP/1.1:
GET / HTTP/1.1
Host: example.com
HTTP/2 的请求行是什么?是不是像:
GET / HTTP/2.0
还是 HTTP/2?
两者都不; 没有这样的请求行,因为 HTTP/2(RFC 7540)不使用行,而是使用帧(第 4 节)进行通信。在这些帧中,使用 HTTP 标头字段(第 8.1.2 节)交换标头。
客户端首先要知道服务器是否支持 HTTP/2。
对于 HTTP(第 3.2 节),这是通过
Upgrade: h2c
标头完成的:对于 HTTPS(第 3.3 节),使用TLS-ALPN(RFC 7301 )中的
h2
协议标识符。由于先验知识(第 3.4 节),请立即从 HTTP/2连接前言开始。
现在,HTTP/2 客户端连接前言(第 3.5 节)可能是您正在寻找的等价物,因为通信总是以 24 个八位字节的序列开始:
0x505249202a20485454502f322e300d0a0d0a534d0d0a0d0a
IE
PRI *m HTTP/2.0\r\n\r\nSM\r\n\r\n
之后,使用头压缩(第 4.3 节)在帧中交换头字段:
几个 HTTP/1.1 请求和响应的 HTTP/2 等效项在第 8.1.3 节的示例中进行了说明,例如