Prior to this change, for CONNECT requests, the Host header was set to the host and port of the target http proxy. However, per the rfc7230 for HTTP/1.1 this is incorrect as the Host header should match the target of the CONNECT request, as detailed in section 5.3.3 & 5.4. 5.3.3. authority-form The authority-form of request-target is only used for CONNECT requests (Section 4.3.6 of [RFC7231]). authority-form = authority When making a CONNECT request to establish a tunnel through one or more proxies, a client MUST send only the target URI's authority component (excluding any userinfo and its "@" delimiter) as the request-target. For example, CONNECT www.example.com:80 HTTP/1.1 5.4. Host <snip> A client MUST send a Host header field in all HTTP/1.1 request messages. If the target URI includes an authority component, then a client MUST send a field-value for Host that is identical to that authority component, excluding any userinfo subcomponent and its "@" delimiter (Section 2.7.1). If the authority component is missing or undefined for the target URI, then a client MUST send a Host header field with an empty field-value. This issue was noticed when proxying requests through HAProxy 2.2 which rejects these invalid http requests.
Name |
Last commit
|
Last update |
---|---|---|
.. | ||
auth.c | Loading commit data... | |
auth.h | Loading commit data... | |
auth_negotiate.c | Loading commit data... | |
auth_negotiate.h | Loading commit data... | |
auth_ntlm.c | Loading commit data... | |
auth_ntlm.h | Loading commit data... | |
credential.c | Loading commit data... | |
credential_helpers.c | Loading commit data... | |
git.c | Loading commit data... | |
http.c | Loading commit data... | |
http.h | Loading commit data... | |
httpclient.c | Loading commit data... | |
httpclient.h | Loading commit data... | |
local.c | Loading commit data... | |
smart.c | Loading commit data... | |
smart.h | Loading commit data... | |
smart_pkt.c | Loading commit data... | |
smart_protocol.c | Loading commit data... | |
ssh.c | Loading commit data... | |
ssh.h | Loading commit data... | |
winhttp.c | Loading commit data... |