WWW: Beyond the Basics

16. HTTP and related protocols

16.2 HTTP/1.0

16.2.1 Background

The web client (commonly called a browser) communicates with a Web server using one or more TCP connections. The well-known port for the Web server is TCP port 80. HTTP is the protocol used by the client and server to communicate over the TCP connection. Typically, the browser invokes some hypertext document. Now this document may itself contain other hypertext links to other documents. They may even be links to FTP or TELNET sessions.

16.2.2 Description

The difference between HTTP/1.0 and its predecessor HTTP/0.9 starts with the server being able to identify the version number because it is part of the request line. Some of the main features of HTTP/1.0 are summarized below

  1. Message types: Requests and Responses: There are two kinds of messages: requests, and responses. Requests are made to get information and responses are the replies to requests. There are three kinds of requests
    1. The GET request returns whatever information is requested
    2. The HEAD request returns only the server's header information
    3. The POST request is used for posting electronic mail, news, or sending forms that can be filled in by and interactive user. This is the only request that sends a body with the request.
  2. Header fields: With HTTP/1.0 both the request and the response can contain a variable number of header fields. A blank line separates the header fields from the body. A header field consists of a field name, followed by a colon, a single space, and the field value. Field names are case sensitive. Headers can be classified into three categories: those that apply to requests, those that apply to responses, and those that describe the body. Unknown header fields should be ignored by a recipient.
  3. Response Codes: The first line of the server's response is called the status line. It begins with the HTTP version, followed by a 3-digit response code , followed by an English response phrase.

16.2.3 Performance problems

Given the increasing use of HTTP, its impact on the WWW is considerable. As mentioned earlier, HTTP/1.0 and earlier versions suffered from some serious performance problems. Some of the problems originate due to the design mismatch between HTTP and its underlying TCP layer. A fundamental problem has to do with the mismatch between the byte-oriented TCP stream and the message oriented HTTP service. An ideal solution is a session-layer protocol on top of TCP that provides a message-oriented interface between an HTTP-client and server over a single TCP connection. This approach is used in HTTP-NG and is described in section 16.4.

The biggest problem however, is due to the use of one TCP connection per file. This causes connection setup and slow-start costs, leading to high latency costs. This is further increased by the protocol returning only one object per request. In general, HTTP/1.0 spends more time waiting than transferring data.

These factors seriously affect the performance of HTTP. The latest versions of the protocol, HTTP/1.1 and HTTP-NG try to overcome these problems.

[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