Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
Because the support for binary XML [MS-BINXML] and compression is optional, the client and server MUST negotiate the content type of the messages for the duration of the connection. The negotiation is based on the preferences and capabilities of the client and server.
The first request sent by the client and the server response are both always text XML. Depending on whether the transport is TCP or HTTP/HTTPS, the DIME OPTIONS field or the HTTP X-Transport-Caps-Negotiation-Flags header is used by client and server to indicate the content type of the messages for the connection.
The process of negotiation is controlled by the client, and the server does not need to remember the current state of negotiation between requests. The NEGO flag is used by the client to inform the server that negotiation is in progress. The client SHOULD set this flag to 0 in the first request and set it to 1 in all subsequent requests (since the negotiation is complete).
The REQ_SX, REQ_XPRESS, RESP_SX and RESP_XPRESS flags are used for the negotiation to represent binary XML in requests, compression in requests, binary XML in responses and compression in responses. The value 0 indicates that the capability is off or not supported. The value 1 indicates that the capability is on or supported.
The client uses the RESP_SX and RESP_XPRESS flags to inform the server whether it supports responses with binary XML and compression.
The server uses the RESP_SX and RESP_XPRESS flags to inform the client whether it will use binary XML and compression in its responses. This decision is based on what the client supports as well as the server capabilities.
Because the server does not remember the current state of negotiation, the client and server MUST send these flags in every request and response.