WWW: Beyond the Basics

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.
  1. 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.
  2. This approach uses an event based model, in which a simple dispatcher can be wrapped around the connection.
  3. 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.

[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