The following reply was made to PR general/4033; it has been noted by GNATS.

From: John-Mark Gurney <[EMAIL PROTECTED]>
To: Rodent of Unusual Size <[EMAIL PROTECTED]>
Cc: Apache bug database <[EMAIL PROTECTED]>
Subject: Re: general/4033: HTTP/0.9 requests yield invalid response
Date: Thu, 11 Mar 1999 15:53:36 -0800

 Rodent of Unusual Size scribbled this message on Mar 11:
 > John-Mark Gurney wrote:
 > > 
 > >  > You're missing the point, I think.  It *isn't* a 'malformed HTTP/0.9
 > >  > request,' because HTTP/0.9 requests *never* have a version number.
 > > 
 > >  even though the specs say this (section 6):
 > >  "A Simple-Response should only be sent in response [or case deleted] if
 > >  the server only supports the more limited HTTP/0.9 protocol."
 >      :
 > >  where in the specification does it say that HTTP/0.9 can not generate
 > >  a full-request?
 > 
 > It is made clear by implication throughout RFC 1945 that 'simple-request'
 > and 'simple-response' refer to HTTP/0.9.  It is not explicitly stated,
 > but there are several specific cases supporting this interpretation.
 
 they implied that it should be the fact, but they then contradicted their
 implication in words which makes the implication invalid...  it's the
 statement in section 6 that is the statement the contradicts their
 implication...  if the second clause (after the or) didn't exist, I would
 completely agree with you...
 
 > RFC 1945, section 3.1:
 > 
 >    The version of an HTTP message is indicated by an HTTP-Version field
 >    in the first line of the message. If the protocol version is not
 >    specified, the recipient must assume that the message is in the
 >    simple HTTP/0.9 format.
 > 
 > Contrariwise, if there *is* a version, the request is *not* in
 > the simple HTTP/0.9 format.  Arguable, I suppose.. but:
 
 nope, go back to logic 101...  we can ONLY assume that the message is in
 the simple HTTP/0.9 format iff (if and only if) the protocol version is
 not specified...  the only other thing that we can assume in the
 contrapositive, that if the message is not in a simple HTTP/0.9 format
 that it has a version specified...  you cannot always assume that the
 converse on a statement is true...
 
 > Section 4.1:
 > 
 >    HTTP messages consist of requests from client to server and responses
 >    from server to client.
 > 
 >        HTTP-message   = Simple-Request           ; HTTP/0.9 messages
 >                       | Simple-Response
 >                       | Full-Request             ; HTTP/1.0 messages
 >                       | Full-Response
 
 those are comments, they are not formal specifications...  they are
 there to help the reader understand what is going on in the text...
 
 section 2.1:
    ; comment
 
        A semi-colon, set off some distance to the right of rule text,
        starts a comment that continues to the end of line. This is a
        simple way of including useful notes in parallel with the
        specifications.
 
 > Section 5:
 > 
 >    A request message from a client to a server includes, within the
 >    first line of that message, the method to be applied to the resource,
 >    the identifier of the resource, and the protocol version in use. For
 >    backwards compatibility with the more limited HTTP/0.9 protocol,
 >    there are two valid formats for an HTTP request:
 > 
 >        Request        = Simple-Request | Full-Request
 > 
 >        Simple-Request = "GET" SP Request-URI CRLF
 > 
 >        Full-Request   = Request-Line             ; Section 5.1
 >                         *( General-Header        ; Section 4.3
 >                          | Request-Header        ; Section 5.2
 >                          | Entity-Header )       ; Section 7.1
 >                         CRLF
 >                         [ Entity-Body ]          ; Section 7.2
 > 
 >    If an HTTP/1.0 server receives a Simple-Request, it must respond with
 >    an HTTP/0.9 Simple-Response.
 > 
 > Section 6:
 > 
 >    A Simple-Response should only be sent in response to an HTTP/0.9
 >    Simple-Request or if the server only supports the more limited
 >    HTTP/0.9 protocol.
 
 re-read this last section, starting at if, why would you not send a
 simple-request if you only support the HTTP/0.9 spec?  this implies
 that the simple-request is NOT the only method that indicates a HTTP/0.9
 transaction...
 
 I'm glad that you finally quoted that I had been quoting and re-reading...
 
 until you quote text that SPECIFICLY states that HTTP/0.9 shall never
 send a full-request or that you CAN NOT specify a HTTP/0.9 response by
 the version field, you will never convince me...  and considering that
 I have just read the complete RFC, that will be hard to do...
 
 -- 
 John-Mark Gurney
 Eugene 4J School District

Reply via email to