2.2.2 URI Encoding

The format of the URI header field of the HTTP request has a special interpretation in this protocol. As specified in [RFC2616], the URI is to be of the following form.

 http-URL = "http:" "//" host [ ":" port ] [ abs-path 
 [ "?" query ]]

This protocol specifies that abs-path MUST be present for RPC over HTTP v2 and MUST have the following form.

  
 nocert-path = "/rpc/rpcproxy.dll"
 withcert-path = "/rpcwithcert/rpcproxy.dll"
  
 abs-path = nocert-path / withcert-path

The form matching withcert-path MUST be used whenever the client authenticates to the HTTP server using a client-side certificate. The form matching nocert-path MUST be used in all other cases.<13>

This protocol specifies that query string MUST be present for RPC over HTTP v2 and MUST be of the following form.

  
 query = server-name ":" server-port

The inbound proxy or outbound proxy uses the query string to establish a connection to an RPC over the HTTP server, as specified in sections 3.2.3.5.3 and 3.2.4.5.3.

  
 server-name = DNS-Name / IP-literal-address / 
               IPv6-literal-address / NetBIOS-Name
 server-port = 1*6(DIGIT)

The length of server-name MUST be less than 1,024 characters.

DNS-Name: An Internet host name or IP_literal_address that is the string representation of an IP literal address, as specified in [RFC1123] section 2.1.

IPv6-literal-address: MUST be the string representation of an IPv6 literal address as specified in [RFC4291] section 2.

NetBIOS-Name: MUST be a NetBIOS name. For more details about NetBIOS, refer to [NETBEUI], [RFC1001], and [RFC1002].