Re: Possible erratum in Part 1, section 9.4.

On 06/22/2011 02:22 PM, Bjoern Hoehrmann wrote:
> * Adrian Custer wrote:
>> In HTTPbis, Part 1, Section 9.4, the fourth(ish) paragraph states:
>>
>> The Host header field MUST be sent in an HTTP/1.1 request even if the
>>     request-target is in the form of an absolute-URI, since this allows
>>     the Host information to be forwarded through ancient HTTP/1.0 proxies
>>     that might not have implemented Host.
>>
>> but I do not understand this ending "implemented Host".
>
> If the client does not send the "Host" header, and you have an ancient
> HTTP/1.0 proxy that does not generate the "Host" header on its own, then
> the request will not have a "Host" header when it reaches the server. As
> the server might depend on the presence of the Host header to serve the
> request, it's better to send the "Host" header even if the information
> in the header is, strictly speaking, redundant in the specific case. If
> that clarifies the intended meaning, how would you phrase that?

Okay, I guess I understand the reasoning, as follows:

1) The server may need the Host header.
2) The client can only send an absolute-URI to a proxy. (Note that 
otherwise, the rule 1 above would be enough justification by itself.)
3) If the proxy were conformant only to HTTP/1.0, it might not itself 
generate the Host: header from the absolute-URI for eventual receipt by 
the server.
Therefore, requiring the client to generate the header, ensures that it 
will get to the server no matter what proxy it uses.

If that is right then perhaps the reason given in the standard should 
read something like:

...since this ensures a Host header will reach the server even when 
passing through a HTTP/1.0 proxy: the proxy might not generate a Host 
header from the absolute-URI itself but would be required to forwards 
the existing header.

   ~adrian

Received on Wednesday, 22 June 2011 13:17:27 UTC