In order to fetch a web page for you, your web
browser must "talk" to a web server somewhere
else. When web browsers talk to web servers, they
speak a language known as HTTP, which stands for
HyperText Transfer Protocol. This language is actually
very simple and understandable and is not difficult
for the human eye to follow.
The method by which World Wide Web pages are transferred
over the network.
A Simple HTTP Example
The browser says:
GET / HTTP/1.0
Host: www.boutell.com
And the server replies:
HTTP/1.0 200 OK
Content-Type: text/html
<head>
<title>Welcome to Boutell.Com, Inc.!</title>
</head>
<body>
The rest of Boutell.Com's home page appears here
</body>
The first line of the browser's request, GET /
HTTP/1.0, indicates that the browser wants to see
the home page of the site, and that the browser
is using version 1.0 of the HTTP protocol. The second
line, Host: www.boutell.com, indicates the web site
that the browser is asking for. This is required
because many web sites may share the same IP address
on the Internet and be hosted by a single computer.
The Host: line was added a few years after the original
release of HTTP 1.0 in order to accommodate this.
The first line of the server's reply, HTTP/1.0
200 OK, indicates that the server is also speaking
version 1.0 of the HTTP protocol, and that the request
was successful. If the page the browser asked for
did not exist, the response would read HTTP/1.0
404 Not Found. The second line of the server's reply,
Content-Type: text/html, tells the browser that
the object it is about to receive is a web page.
This is how the browser knows what to do with the
response from the server. If this line were Content-Type:
image/png, the browser would know to expect a PNG
image file rather than a web page, and would display
it accordingly.
A modern web browser would say a bit more using
the HTTP 1.1 protocol, and a modern web server would
respond with a bit more information, but the differences
are not dramatic and the above transaction is still
perfectly valid; if a browser made a request exactly
like the one above today, it would still be accepted
by any web server, and the response above would
still be accepted by any browser. This simplicity
is typical of most of the protocols that grew up
around the Internet.