WWW: Beyond the Basics

16. HTTP and related protocols

16.1 Introduction

The main protocol behind the World Wide Web (WWW) is the Hypertext Transfer Protocol (HTTP). It forms the basis for the transfer of documents between WWW servers and clients. It runs on top of the TCP/IP protocol suite. In this section a brief history of HTTP, the need for it, and the design issues behind the original HTTP are presented.

16.1.1 History of HTTP

Around the time when the WWW started gaining popularity, there were a host of specialized data transfer protocols related to file transfers, news broadcast, mail transfers, search and retrieval facilities. But the WWW brought along its own specific needs. The protocol needed mainly a subset of file transfer functionality, the ability to request and index search, automatic format negotiation and the ability to refer the client to another server. This initiated the development of HTTP.

The original HTTP developed in 1991 was a very simple minded protocol. (Berners-Lee 1) Its main purpose was to do raw data transfer. This protocol is HTTP/0.9. It had facilities for just making connections, initiating requests and getting back responses. All the responses are simply streams of ASCII characters. This protocol was replaced by HTTP/1.0, described in RFC 1945. This protocol added MIME-like messages, header lines containing information about the data being transferred and modifiers for the request/response messages. This protocol also had disadvantages that were overcome by the next proposed enhancement, HTTP/1.1. HTTP/1.0 and HTTP/1.1 are described in more detail in the next two sections. HTTP 1.1 considered hierarchical proxy servers, caching, adding persistent connections and virtual hosts. HTTP 1.1 is being considered as a standard by the Internet Engineering Task Force (IETF). The latest Internet draft of this protocol can be found here. HTTP-NG (Next Generation) is another proposed modification to HTTP/1.0. It preceded development of HTTP/1.1 (draft 7). It was supposed to be an enhanced replacement for HTTP/1.0. HTTP-NG is discussed in detail in section 4. Some of the key ideas behind HTTP-NG include persistent connections, ability to make multiplex multiple requests/responses over a single transport connection, and the ability to pass URLs to a protocol in a response message. S-HTTP (Secure HTTP) was developed to provide secure communication mechanisms between an HTTP client-server pair in order to enable spontaneous commercial transactions for a wide range of applications.

16.1.2 Design issues of original HTTP

The design of HTTP presented some new problems because it dealt with information retrieval for hypertext. (Berners-Lee 2) Decisions had to be made related to the underlying protocol, and the other issues related to the data transfer. There were various distinct possible bases for the protocol. Choices could be made between something based on an internet protocol, something based on an RPC standard, or something based on the OSI stack. Current HTTP as well as the original version decided to follow the first option and run over the existing TCP/IP protocol, since it had the advantage of being well understood and having existing implementations being easily available.

Another issue was related to whether the protocol would be idempotent or not. It means whether the server needed to keep any state information about the client. The current protocol is idempotent.

Decisions also had to be made regarding the two main commands under HTTP, requests and responses as well as status codes depending on the execution of the commands.

[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