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.
- Sending an HTTP request
- Receiving an HTTP request
- Sending an HTTP reply
- 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
- 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.
- Protocol-Info : This command lets one agent tell
the other if a particular extension is supported; there is no required
response.
- 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.
- 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.
Copyright © 1996 Mir Farooq Ali, All Rights Reserved
Mir Farooq Ali
<mfali@vt.edu>
Last modified: Sat Oct 26 13:26:04 1996