Henrik Frystyk, July 1994

WWW Icon Summary


This report describes the World-Wide Web as a generic model for exchanging information on the Internet. The model supports several Presentation Layer protocols such as FTP, Gopher, etc. but the main protocol is the Hypertext Transfer Protocol. This protocol is a client-server based protocol based on the TCP protocol. The TCP protocol has an advantage over UDP in that it provides a reliable stream-oriented service to the HTTP protocol. On the other hand, TCP implies a substantial overhead in the 3 Way Handshake (3WHS) technique used for setting up a connection. A very interesting alternative to the TCP protocol is Transactional TCP (T/TCP) protocol that short circuits the 3WHS connection establishment and optimizes the reliable stream transport for client-server applications with many consecutive connections between the same hosts.

The following software modules and programs which are all developed and maintained by the CERN World-Wide Web team

World-Wide Web Library of Common Code
A general purpose code basis for many World-Wide Web applications. It contains code for accessing and parsing information from the Internet and pass it to the client application. An updated flow diagram is presented.
Line Mode Browser
A test tool for the library and useful as a filter run from batch jobs
HTTP Server
A generic HTTP server for handling client requests handling access authentication etc.
Proxy Server
A special HTTP server that can be used on a firewall machine. The proxy waits for a request from inside the firewall, forwards the request to the remote server outside the firewall, reads the response and then sends it back to the client. Furthermore, the CERN Proxy server has a cache manageer included in the application. As the proxy is a central node for connections network performance can be improved significantly by this cache.
A new HTTP client has been designed and implemented as an alpha version (August 1994). It is based on a state machine concept in order to provide it with a multi-threaded, interruptable I/O interface to the client application. The multi-threaded design is based on a single-stack, single-process environment in order to make the library portable to inherently single-threaded platforms such as PCs. An event loop has been introduced into the control flow diagram of the library. The event loop, implemented inside the library, is based on a set of call back functions to the client application initiated by events from either the network interface or standard input.

A design for how World-Wide Web Clients interface to the library when posting a data object has been designed and implemented in an alpha version (August 1994). It gives the user the opportunity of posting data object to more than one recipient at the same time by creating a POST Web with links to the different destinations, for example a NNTP news group, a SMTP email address, and a HTTP server.

The posting interface is to be followed up by an enhancement of the HTTP protocol to handle multiple POST requests at the same time. A draft proposal is under development but is not finished at this moment. The plan is to combine this feature with a multiple GET feature so that the HTTP protocol is expanded to handle compound requests in both directions all handled within the same transaction. However, the basic stateless client-server model is preserved as the client still sends exactly one request and the server sends exactly one response. The current specifications only allow one single data object to be transferred per transaction.


Henrik Frystyk, frystyk@info.cern.ch, July 1994