1.7 Versioning and Capability Negotiation

This specification covers versioning issues in the following areas:

Supported transports: This protocol can be implemented on top of HTTP 1.0 and HTTP 1.1, as specified in section 2.1.

Protocol versions: Clients specify the protocol version by using the User-Agent (section header and by using the version11-enabled (section token on the Pragma header. Servers specify the protocol version by using the Server (section header.

Security and Authentication Methods: This protocol supports HTTP access authentication, as specified in HTTP 1.0 [RFC1945] section 11.

Localization: This specification does not specify any localization-dependent protocol behavior.

Capability negotiation: This protocol performs explicit capability negotiation by using the following mechanisms:

This protocol does not use operating system versioning. This is because operating systems typically include multiple-client implementations that have different capabilities. Furthermore, the client software components are frequently updated independently of the rest of the operating system. Instead, the protocol versioning mechanism relies on the version number of the Microsoft software product that is sending the request or response to be stated in the User-Agent and Server headers, respectively.

For an example of how this versioning mechanism works and how it affects which protocol messages are sent, see the description of the $M (Metadata) packet (section