I think the preferred HTTP way is to start out with an HTTP OPTIONS request to a recipient whose version is unknown:
OPTIONS * HTTP/1.1
>The OPTIONS method represents a request for information about the communication options available on the request/response chain identified by the Request-URI. This method allows the client to determine the options and/or requirements associated with a resource, or the capabilities of a server, without implying a resource action or initiating a resource retrieval...
If you get a 200 (OK) response with an HTTP/1.0 version, fall back to HTTP/1.0.
If you get a 501 (Not Implemented) response you could try HEAD, which is a mandatory method.
If you get a 505 (HTTP Version Not Supported) response you could fall back to HTTP/0.x (this error code applies to the Major version number).
> Paul Moore wrote:
> > but if it only supports 1.1 (an allowed thing to do) what will the reject
> > of 1.0 look like?
> You could send 'Version Not Supported' (look up the number in the HTTP
> spec), I suppose, but that is really for rejecting a request higher than
> that implemented by the server. Any 1.1 server should be able to handle
> any 1.0 request - there would be no reason to reject it.
Network Working Group J. C. Mogul
Request for Comments: 2145 DEC
Category: Informational R. Fielding
Use and Interpretation of
HTTP Version Numbers
See the original message at http://www.egroups.com/list/ipp/?start=4617
-- Free e-mail group hosting at http://www.eGroups.com/