Re: [Fwd: GTest in watchdog fails with Apache...]
Craig R. McClanahan at [EMAIL PROTECTED] wrote: Thanks Justin ... my initial assumption was that Apache would be doing this right, considering all the people involved ... :-) I'll fix the Watchdog test so that it reacts to this correctly. We also need to fix the HTTP/1.1 connector in tomcat so that it behaves in the right way... Currently it replies with the version the request was posted on... Pier
Re: [Fwd: GTest in watchdog fails with Apache...]
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
Re: [Fwd: GTest in watchdog fails with Apache...]
Thanks Justin ... my initial assumption was that Apache would be doing this right, considering all the people involved ... :-) I'll fix the Watchdog test so that it reacts to this correctly. Craig On Mon, 6 Aug 2001, Justin Erenkrantz wrote: 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