To work with the web, you need to know HTTP, writes Nick Langley
What is it?
The closest encounter most people have with Hypertext Transfer Protocol (HTTP) is when they get a "404 not found" message after mistyping a web address or clicking on a dead link. Yet it is the essential web protocol, enabling web browsers and web servers to communicate. Whenever you request a web page, it is HTTP that instructs the server to send it to you.
Where did it originate?
First defined in 1990, HTTP is under the control of the World Wide Web Consortium (W3C), which works with the Internet Engineering Task Force to develop it. There are two versions in widespread use, HTTP/1.0 and HTTP/1.1.
HTTP is a "stateless" protocol, which means each command sent stands alone, and is unconnected to what has gone before or what follows. There is no concept of a session. Version 1.0 lacks the scalability and performance expected of contemporary web applications, and the W3C says all HTTP applications should follow the HTTP/1.1 specification.
Version 1.1 has some significant improvements. Connections are "persistent", overcoming the need for multiple connections to be set up when transferring pages with multiple elements. Content negotiation means browsers can request the server to send documents in the format they prefer.
There is also a secure version, HTTPS.
What is it for?
As well as sending web pages, HTTP is also used for distributed object management and in web services technologies such as Simple Object Access Protocol.
What makes it special?
HTTP is simple to implement, and ubiquitous.
How difficult is it?
One web-based tutorial says, "HTTP is simple enough for a beginning sockets programmer." However, the forthcoming book HTTP: The Definitive Guide by Gourley, Totty et al is more than 600 pages long.
HTTP may have started out simple, but a great deal has been done with it since its inception. This means developers must make themselves familiar with a lot of other technologies that are needed if HTTP applications are going to work.
Developers also need an awareness of how HTTP interacts with other technologies, and how their own application is likely to interact with others - not least in the competition for server and network resources.
A stateless protocol with the government's recent initiative for dealing with asylum seekers.
What does it run on?
The W3C recently unveiled its open source web server Jigsaw, on which HTTP/1.1 compliance can be tested.
Few people know that
When the web was being developed at Cern, the main database was housed in room 404. If a document requested could not be tracked down, the message "Room 404: file not found" was returned.
There are plenty of websites devoted to different versions of the 404 error page, ranging from the twee to the obscene. For example, see www.plinko.net/404.
What is coming up?
The W3C has been looking at ways of replacing the HTTP/1.x family since the mid-1990s, but HTTP/1.1 is likely to be the standard for a long while yet.
There are free tutorials online (try for example www.jmarshall.com/easy/http) but many have not been updated for years. A good starting point is the World Wide Web Consortium website at www.w3c.org, or you could read HTTP: The Definitive Guide, published by O'Reilly.
Rates of pay
Web application developers will need HTTP. Most job adverts assume that anyone applying will have HTTP, so they do not specify it. Salaries offered can be as low as £14,000.