Main Page | See live article | Alphabetical index


HTTP (for HyperText Transfer Protocol) is the primary method used to communicate information on the World Wide Web. The specification is currently maintained by the World Wide Web Consortium (W3C).

OSI model



Application layer FTP SMTP HTTP ...
Transport layer TCP UDP
Network layer IP ICMP ARP
Data link layer Ethernet Token Ring FDDI ...

HTTP is a request/response protocol between clients and servers. An HTTP client, such as a web browser, initiates a request by connecting to (usually) TCP/IP port 80. The client then sends a request string, such as "GET / HTTP/1.1" (which would request the default page of that web server). The server would then respond with a file (or error message). The file sent by the server is preceded by an HTTP Header, which is a set of ASCII strings containing information about the server and the document being sent. HTTP is defined in RFC 2068.

HTTP differs from other TCP-based protocols such as FTP, in that connections are generally torn down once a particular request (or related series of requests) has been completed. This design makes HTTP ideal for the World Wide Web, where pages regularly link to pages on other servers. It can occasionally pose problems for Web designers, as the lack of a persistent connection necessitates alternative methods of maintaining users' "state". Many of these methods involve the use of "cookiess".

There is a secure version of HTTP called HTTPS that can use any given encryption method as long as it is understood by both sides.


Below is a sample conversation to Client request:
GET / HTTP/1.1

(followed by a blank line)

Note that a newline is sent as a carriage return followed by a line feed. In most programming languages, this is called CRLF or \\r\\n.

Server response:

HTTP/1.1 200 OK
Content-Length: 3059
Server: GWS/2.0
Date: Sat, 11 Jan 2003 02:44:04 GMT
Content-Type: text/html
Cache-control: private
Set-Cookie: PREF=ID=73d4aef52e57bae9:TM=1042253044:LM=1042253044:S=SMCc_HRPCQiqy
X9j; expires=Sun, 17-Jan-2038 19:14:07 GMT; path=/;
Connection: keep-alive

(followed by HTML text)

External links