16. HTTP and related protocol
16.4 HTTP-NG
HTTP-NG is an enhanced replacement for HTTP/1.0. It is designed to
correct the known performance problems in previous versions of HTTP, and
to provide extra support for commercial transactions, including enhanced
security and support for on-line payments. In this section, we present
the architectural overview of HTTP-NG, implementation exercises, and the
current status.
16.4.1 Architecture
According to Simon Spero, "the
protocol is designed to make it easy to implement
the basic functionality needed for a simple browser whilst making the
addition of more powerful features such as security and authentication
much simpler than it is for HTTP."
Instead of using a single connection per request as in HTTP/1.0, HTTP-NG
allows multiple requests to be sent over a single connection. These
requests are asynchronous. This means that there is no need for the
client to wait for a response before sending out a different request.
The server can also respond to requests in any order it sees fit. In
order to make these multiple data streams easy to work with, HTTP-NG
sends all its messages and data using a session layer. This divides the
connection into a lot of different channels making it easier to
provide the ability to pass a URL to a protocol in a response message
and to use a media-specific protocol for things like audio and video over
media-aware networking technologies, like Asynchronous Transfer Mode (ATM).
HTTP-NG provides a general security framework into which various
security components can be fitted. This provides the facility to
incorporate different security schemes and policies. The HTTP-NG message
wrapper has fields which can carry arbitrary authentication and security
information. This allows each message to be individually authenticated.
HTTP-NG also allows an intermediate server to perform security related
operations on behalf of its clients.
16.4.2 Implementation
There are several ways to implement HTTP-NG. Three of these are outlined
below.
- The first approach is to use a synchronous Remote Procedure Call
(RPC) mode. The client establishes a connection to the server, and then
sends out a request. This is the most common implementation practise
among older HTTP versions.
- This approach uses an event based model, in which a simple
dispatcher can be wrapped around the connection.
- The final approach is to use a multi-threaded implementation, in
which each request and channel gets allocated its own thread, allowing
multiple requests to be processed in parallel.
16.4.3 Current status
Although HTTP-NG originated before HTTP/1.1, the latter seems to have
overtaken it in terms of popularity. There have been some implementations
of this protocol which yield better performance than HTTP/1.1. An effort
is also being made to use distributed object technology for the
implementation. It remains to be seen whether HTTP-NG can emerge as a
major protocol for the WWW.
Copyright © 1996 Mir Farooq Ali, All Rights Reserved
Mir Farooq Ali
<mfali@vt.edu>
Last modified: Sat Oct 26 13:26:04 1996