HTTP 1.1 header incompatibility

Section 4.2 "Message Headers" in RFC 1945 (HTTP 1.0) reads:

   "HTTP header fields, which include General-Header (Section 4.3),
   Request-Header (Section 5.2), Response-Header (Section 6.2), and
   Entity-Header (Section 7.1) fields, follow the same generic format
   as that given in Section 3.1 of RFC 822 [7].  Each header field
   consists of a name followed immediately by a colon (":"), a single
   space (SP) character, and the field value."

The same section in the current HTTP 1.1 spec reads:

   "HTTP header fields, which include general-header (section 4.5),
   request-header (section 5.3), response-header (section 6.2), and
   entity-header (section 7.1) fields, follow the same generic format
   as that given in Section 3.1 of RFC 822 [9].  Each header field
   consists of a name followed by a colon (":") and the field value.
   Field names are case-insensitive.  The field value MAY be preceded
   by any amount of LWS, though a single SP is preferred."

In the process of liberalizing the syntax to allow LWS where SP was
previously required, we have made the whitespace optional altogether.  I
don't believe this was intentional, as such a basic syntactic change
would require incrementing the HTTP-Version major level (due to the
incompatibility with HTTP 1.0).  I suggest rewording the middle sentence
to say something like the following, and leaving the last sentence
intact:

   "Each header field consists of a name followed by a colon (":"),
   linear whitespace (LWS), and the field value."

I know this sounds like a nit, but I have a customer citing this
reference as allowing something like "If-Modified-Since:Sat, 29 Oct 1994
19:43:31 GMT", and I'd rather thank him for helping us clean it up than
tell him the HTTP 1.1 spec is in error.

Ross Patterson
VM Software Division
Sterling Software, Inc.

Received on Monday, 12 October 1998 06:09:48 UTC