HTTP 代理 CONNECT 请求中是否始终需要 Host 标头?

问题描述 投票:0回答:1

基于 此示例,HTTP CONNECT 请求可以具有

Host
Proxy-Authorization
标头。

CONNECT server.example.com:80 HTTP/1.1\r\n
Host: server.example.com:80\r\n
Proxy-Authorization: basic aGVsbG86d29ybGQ=\r\n\r\n

Proxy-Authorization
标题是可选的。

Host
标头also是可选的吗?我们(作为代理服务器)是否应该接受如下请求而不添加额外的标头行?

CONNECT server.example.com:443 HTTP/1.1\r\n\r\n
http proxy request http-proxy
1个回答
0
投票

RFC 2616 第 14.23 节中规定

A client MUST include a Host header field in all HTTP/1.1 request messages .

CONNECT 请求是 HTTP 请求。因此,只要请求行指定 HTTP/1.1,即使在 CONNECT 请求中,Host 标头也是必需的。如果您想严格遵守标准,您的代理服务器不应接受没有此标头的 HTTP/1.1 请求。

© www.soinside.com 2019 - 2024. All rights reserved.