On Mon, Aug 06, 2001 at 05:25:03PM +0100, Pier P. Fumagalli wrote:
> Justin Erenkrantz at [EMAIL PROTECTED] wrote:
> 
> > On Mon, Aug 06, 2001 at 11:17:18AM +0200, jean-frederic clere wrote:
> >> I have tested it with 1.3.20 it behaves the same way.
> > 
> > This is correct behavior on httpd's part.  It is a bug in Tomcat
> > (rather the Watchdog test).
> > 
> > The server should respond with the highest HTTP version it
> > supports.  Somewhere in the RFC is the rules for how to determine
> > whether it should be upgraded or not (it must still be parsable by
> > the original request version).  Roy or someone else can jump in here
> > if they want to discuss that vagaries of upgrading the response
> > version, but this is expected behavior.  -- justin
> 
> I can't find this written anywhere in the HTTP spec (rfc 2616). Section 6.1
> describes how the first line of an HTTP response is composed, but it doesn't
> say anything about the version number to be used.
> 
> I can assume (by some observations made on what's going on between my client
> (OmniWeb PRO 4.01 for OS/X) and Apache, that the client posts a request as
> HTTP/1.0, if the response is HTTP/1.1, then all following requests will be
> made with the upgraded protocol version...
> 
> But actually the spec (as far as I can see from a brief re-reading) doesn't
> specify anything about it...

Let the spec war begin.  =-)

RFC 2616 - Section 3.1 - HTTP Version:

   The HTTP version of an application is the highest HTTP version for
   which the application is at least conditionally compliant.

RFC 2145 goes into specific detail about this problem (what to send)
- see Section 2.3:
---

   An HTTP client SHOULD send a request version equal to the highest
version for which the client is at least conditionally compliant, and
whose major version is no higher than the highest version supported
by the server, if this is known.  An HTTP client MUST NOT send a
version for which it is not at least conditionally compliant.

An HTTP client MAY send a lower request version, if it is known that
the server incorrectly implements the HTTP specification, but only
after the client has determined that the server is actually buggy.

An HTTP server SHOULD send a response version equal to the highest
version for which the server is at least conditionally compliant, and
whose major version is less than or equal to the one received in the
request.  An HTTP server MUST NOT send a version for which it is not
at least conditionally compliant.  A server MAY send a 505 (HTTP
Version Not Supported) response if cannot send a response using the
major version used in the client's request.

---

Of course, I could be misunderstanding it all.  But, the chances of
httpd's HTTP parser being incorrect w.r.t. the spec or the intent of 
the authors is very very slim.  FWIW, IIS and iPlanet both behave 
identically to Apache (try out microsoft.com and netscape.com).

I'll now get out of the way to make room for the spec police.  -- justin

Reply via email to