Subject: Possible erratum in Part 1, section 9.4.

From: Adrian Custer <[email-masked]>
Date: Wed, 22 Jun 2011 11:29:44 +0000

Editors of HTTPbis,

Thanks for all your work on this rewrite of RFC 2616. I am reading both 
that RFC and your new document as part of work for on a "profile" of 
HTTP for a web service standard (OGC and ISO's Web Map Service). So far, 
the new version has greater clarity and shows better organization which 
is great for us readers.

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". I guess this 
might be an erratum which should instead read something like

    ...
    that might not have implemented *support for absolute-URI in the
    request-target*.

since HTTP/1.1 makes a big deal of requiring this support for future 
versions of the protocol. (Reading this ending as 'implement support for 
the "Host:" header' makes the sentence nonsensical to me.)

Regardless, the phrase "implement Host" should be clarified.

cheers,
   ~adrian custer

---

From: Bjoern Hoehrmann <[email-masked]>
Date: Wed, 22 Jun 2011 14:22:04 +0200

* Adrian Custer wrote:
>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?
-- 
Björn Höhrmann · mailto:[email-masked] · http://bjoern.hoehrmann.de
Am Badedeich 7 · Telefon: +49(0)160/4415681 · http://www.bjoernsworld.de
25899 Dagebüll · PGP Pub. KeyID: 0xA4357E78 · http://www.websitedev.de/

---

From: Julian Reschke <[email-masked]>
Date: Wed, 22 Jun 2011 14:27:10 +0200

> that clarifies the intended meaning, how would you phrase that?

Makes sense.

I think, minimally, the sentence should end with

   "...that might not have implemented the Host header field."

Best regards, Julian

---

From: Adrian Custer <[email-masked]>
Date: Wed, 22 Jun 2011 13:12:29 +0000

> 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