WWW: Beyond the Basics

16. HTTP and related protocols

16.6 Protocol Exchange Protocol

"HTTP/1.2 or Protocol Exchange Protocol or PEP is a system for HTTP clients, servers, and proxies to reliably reason about custom extensions to HTTP." (Khare) HTTP has the facility to provide extended facilities using additional message headers. These are referred to as custom extensions. PEP has features to allow the negotiation of these extensions between clients and servers. It also has features for expressing the scope, strength and ordering of such extensions.

16.6.1 Background

HTTP messages can be extended with additional header fields and content formats. PEP introduces the concept of protocol extensions to systematically address these issues at a higher level of abstraction. With PEP, HTTP agents can inter-operate correctly with known and unknown protocol extensions, select protocol extensions available to both sides, and query partners for specific capabilities. This eliminates the confusion between the clients and servers.

PEP has been developed over the last year by the collaboration of many parties, including W3C/CommerceNet Joint Electronic Payment Initiative (JEPI).

16.6.2 PEP model

There are four points where PEP processing may occurs in a basic HTTP transaction as illustrated in figure below.

Fig 4: Points where PEP processing occurs.

  1. Sending an HTTP request
  2. Receiving an HTTP request
  3. Sending an HTTP reply
  4. Receiving an HTTP reply
During a transaction, either side may invoke a Protocol, issue a Protocol-Request, query about a particular Protocol using Protocol-Query and send back requested information by Protocol-Info. The next subsection will illustrate how this processing is done.

16.6.3 PEP usage

There are four main commands to communicate between agents regarding protocol extensions. These commands are
  1. Protocol-Query : This command lets one agent ask the other if a particular extension is supported; the response comes back in a subsequent Protocol-Info.
  2. Protocol-Info : This command lets one agent tell the other if a particular extension is supported; there is no required response.
  3. Protocol-Request : This command lets one agent tell the other to directly initiate a particular extension; the response requires a subsequent Protocol directive for each request.
  4. Protocol : This lets one agent declare that the particular extension is in use for the current message; the response may be to continue using the extension.
All these commands may be executed at any one of the four stages of interaction between the user agents as illustrated in the earlier figure. Details regarding their execution can be found in Khare.

[PREV] [NEXT] [UP] [HOME] [VT CS]

Copyright © 1996 Mir Farooq Ali, All Rights Reserved

Mir Farooq Ali <mfali@vt.edu>
Last modified: Sat Oct 26 13:26:04 1996