http2 中的连接消息 header 应该是什么样子?
What a connect message header should look like in http2?
我发现获取消息 header 看起来像:
:method: GET
:scheme: https
:authority: server.net
:path: /config
accept: */*
accept-encoding: gzip,deflate
连接消息 header 应该是什么样子?
这个例子来自http2的RFC:
GET /resource HTTP/1.1 HEADERS
Host: example.org ==> + END_STREAM
Accept: image/jpeg + END_HEADERS
:method = GET
:scheme = https
:path = /resource
host = example.org
accept = image/jpeg
我想知道 http2 中连接 header 的等价物。
在 Http1 中是:
CONNECT example.org:443 HTTP/1.1
Host: example.org:443
HTTP/2中CONNECT
方法的格式在section 8.3中指定。
您在上面使用的格式看起来像:
:method: CONNECT
:authority: proxy.net:8080
按照规定,:scheme
和:path
必须被省略。
HTTP/2 CONNECT
方法也可用于引导其他协议(参见 WebSocket over HTTP/2 示例),因此 :protocol
pseudo-header 也可能存在。
但是请记住,这只是 HTTP/2 的文本表示;实际通过网络传输的字节是不同的,因为您必须使用 HPACK.
对它们进行编码
除非您实际上正在编写 HTTP/2 实现,否则最好使用现有库(几乎可以在任何编程语言中使用)来发送 HTTP/2 请求(任何类型):库将负责将您的 CONNECT
请求转换为正确的字节以通过网络发送。
我发现获取消息 header 看起来像:
:method: GET
:scheme: https
:authority: server.net
:path: /config
accept: */*
accept-encoding: gzip,deflate
连接消息 header 应该是什么样子?
这个例子来自http2的RFC:
GET /resource HTTP/1.1 HEADERS
Host: example.org ==> + END_STREAM
Accept: image/jpeg + END_HEADERS
:method = GET
:scheme = https
:path = /resource
host = example.org
accept = image/jpeg
我想知道 http2 中连接 header 的等价物。 在 Http1 中是:
CONNECT example.org:443 HTTP/1.1
Host: example.org:443
HTTP/2中CONNECT
方法的格式在section 8.3中指定。
您在上面使用的格式看起来像:
:method: CONNECT
:authority: proxy.net:8080
按照规定,:scheme
和:path
必须被省略。
HTTP/2 CONNECT
方法也可用于引导其他协议(参见 WebSocket over HTTP/2 示例),因此 :protocol
pseudo-header 也可能存在。
但是请记住,这只是 HTTP/2 的文本表示;实际通过网络传输的字节是不同的,因为您必须使用 HPACK.
对它们进行编码除非您实际上正在编写 HTTP/2 实现,否则最好使用现有库(几乎可以在任何编程语言中使用)来发送 HTTP/2 请求(任何类型):库将负责将您的 CONNECT
请求转换为正确的字节以通过网络发送。