1.3.2 Roles and Dialects

The RPC over HTTP Protocol defines the role of an RPC over HTTP proxy that can be deployed to relay network traffic between a client and a server residing on networks separated by a firewall through which HTTP or HTTPS traffic is permitted to flow.

RPC over HTTP Protocol has two main protocol dialects: RPC over HTTP v1 and RPC over HTTP v2. Different roles are defined for each dialect.

RPC over HTTP v1 defines the roles of a client, a server, and an RPC over HTTP proxy, called a mixed proxy in this specification. The following diagram shows the different roles and their relationships.

RPC over HTTP v1 roles

Figure 1: RPC over HTTP v1 roles

RPC over HTTP v2 works in a more complex topology and defines the roles of a client, a server, an inbound RPC over HTTP proxy, and an outbound RPC over HTTP proxy. RPC over HTTP v2 proxies do not have fixed roles. They can act as inbound or outbound proxies depending on the protocol sequence in which they participate. The following diagram shows the different roles and their interactions.

RPC over HTTP v2 roles

Figure 2: RPC over HTTP v2 roles

The roles defined herein are preserved even when the inbound proxy and outbound proxy roles run on the same network node. However, this protocol does not assume that the inbound proxy and outbound proxy reside on the same network node. Load balancing and clustering technologies, among others, might cause the inbound proxy and outbound proxy to run on different network nodes.<1>

An RPC over HTTP proxy that only supports RPC over HTTP v2 cannot interoperate with an RPC over HTTP v1 client or an RPC over HTTP v1 server.

The differences between RPC over HTTP v1 and v2 fall into three main categories, based on the following:

  • The RPC over HTTP PDUs and RPC over HTTP PDUs' location

  • The proxy roles

  • The mapping of RPC and RPC over HTTP PDUs to HTTP requests

Note In the figure above, the arrows indicate direction in which the PDU flow through the various roles.