The Basics of HTTP

The web is the largest client/server system implemented to date. It is also the most complex one that must deal with many various operating systems, human languages, programming languages, software and hardware.

What is a client/server system? A client/server system is a way of distributing information across information systems like a local area network (LAN), a wide area network (WAN), or the Internet.

A client/server system works something like this: A powerful computer (called a server) sits in a building somewhere with a bunch of files that people might want access to. This computer runs a software package (also called a server) that listens all day long to requests over the wires. The "wires" is possibly a twisted pair network hooked into a local telephone company POP or a cable or fiber optics network hooked up to a corporate WAN or LAN that is also linked up to the national telecommunications/information infrastructure through a local telephone company.

Typically, these requests will be in some language and some format that the computer understands, but in English sound something like, "hello software package running on a big, powerful computer, please give me the file called "mydocument.txt" that is located in the directory "/usr/people/myname". The "server software" will then access the server hardware, find the requested file, send it back over the wires to the "client" who requested it, and then wait for another request from the same or another client.

Usually, the "client" is actually a software program, like Firefox, that is being operated by a person who is the one who really wants to see the file. The client software however, deals with all the underlying client/server protocol stuff and then displays the document (that usually means interpreting HTML) to the human user.

The client/server protocol used by the web is HTTP (HyperText Transport Protocol). HTTP is a "request-response" type protocol that specifies that a client will open a connection to a server then send a request using a very specific format. The server will then respond and close the connection.