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.