2.1.2.1.3 IN Channel Response
The IN channel response is an HTTP response [RFC2616]. It is used only in error conditions on the RPC over HTTP proxy. The HTTP header fields and message body syntax that are different from [RFC2616] are as follows:
Status Line: [RFC2616] section 6.1 specifies that the status line be composed of three nonspace subfields:
HTTP-Version: SHOULD be the character sequence HTTP/1.0.
Reason-Phrase: MUST be in the following form:
reason-phrase = "RPC Error: " RPC-Error [ee-info] RPC-Error = 1*HEX ee-info = ", EEInfo: " EncodedEEInfo
RPC-Error: MUST be interpreted as a hexadecimal representation of an error code. The error code MUST be an implementation-specific value between 0x0 and 0xFFFFFFFF. The error code MUST NOT be one of the error codes specified in [MS-RPCE] section 3.3.3.5.1.<9>
ee-info: Is part of the reason-phrase and MUST be present if error information is available to the inbound proxy. The behavior of the inbound proxy is defined in section 3.2.3.5.11.
EncodedEEInfo: MUST be a base64-encoded BLOB. The base64 encoding MUST be as specified in [RFC4648] section 4. The content of the BLOB is specified in [MS-EERR]. The BLOB MUST continue until the CRLF delimiter at the end of the status line.
The total length of the reason-phrase line MUST NOT exceed 1,024 bytes.
Status-Code: MUST be the character sequence 503.
MessageBody: MUST be in the following format.
-
message-body = ["RPC EEInfo:" EncodedEEInfo]
EncodedEEInfo: MUST be a base64 BLOB. The base64 encoding MUST be as specified in [RFC4648] section 4. The content of the BLOB is specified in [MS-EERR]. The BLOB MUST continue until the CRLF delimiter at the end of the message body.