HTTP


Short for HyperText Transfer Protocol, the underlying protocol used by the World Wide Web. HTTP defines how messages are formatted and transmitted, and what actions Web servers and browsers should take in response to various commands. For example, when you enter a URL in your browser, this actually sends an HTTP command to the Web server directing it to fetch and transmit the requested Web page.

The other main standard that controls how the World Wide Web works is HTML, which covers how Web pages are formatted and displayed.

HTTP is called a stateless protocol because each command is executed independently, without any knowledge of the commands that came before it. This is the main reason that it is difficult to implement Web sites that react intelligently to user input. This shortcoming of HTTP is being addressed in a number of new technologies, including ActiveX, Java, JavaScript and cookies.


What is HTTP?

HTTP stands for Hypertext Transfer Protocol. It's the network protocol used to deliver virtually all files and other data (collectively called resources) on the World Wide Web, whether they're HTML files, image files, query results, or anything else. Usually, HTTP takes place through TCP/IP sockets (and this tutorial ignores other possibilities).
A browser is an HTTP client because it sends requests to an HTTP server (Web server), which then sends responses back to the client. The standard (and default) port for HTTP servers to listen on is 80, though they can use any port.

What are "Resources"?

HTTP is used to transmit resources, not just files. A resource is some chunk of information that can be identified by a URL (it's the R in URL). The most common kind of resource is a file, but a resource may also be a dynamically-generated query result, the output of a CGI script, a document that is available in several languages, or something else.
While learning HTTP, it may help to think of a resource as similar to a file, but more general. As a practical matter, almost all HTTP resources are currently either files or server-side script output.


As Web traffic has come to dominate the Internet, remedying the weaknesses of the HTTP protocol has become critical. W3C has worked with the Internet Engineering Task Force (IETF) to develop a number of refinements to HTTP, work that has culminated in a new specification for the protocol. This new specification, called HTTP/1.1, has just recently become an IETF Draft Standard.

IETF specifications proceed through three main steps: Proposed Standard; Draft Standard; and finally Internet Standard. A Draft Standard is considered to be the final specification, apart from only small changes of a very specific nature. Only a short step away is the Internet Standard - a specification that, to quote the IETF, is "stable and well-understood, is technically competent, has multiple, independent, and interoperable implementations with substantial operational experience, enjoys significant public support, and is recognizably useful in some or all parts of the Internet."

The standardization of HTTP was started within the IETF in late 1994, and W3C has strongly supported these efforts. Significant W3C effort went into HTTP/1.1, particularly from Jim Gettys, visiting scientist at W3C from Compaq, HTTP/1.1 editor and co-author, and from Henrik Frystyk Nielsen, formerly W3C staff, and co-author of HTTP/1.1.
- www.w3c.com