HTTP
August 16, 1999
Okay, so that is how data is sent from a software program on
one computer, transferred through the network, and
reassembled on the other end. TCP/IP pretty successfully
handles network navigation. However, browsers and servers
need to transfer more information than what is required in
network navigation.
For example, browsers and servers must understand how to
exchange web documents
(multimedia files such as
images, text,
audio,
etc). To do so, browsers and servers must speak their own
standard protocol to help them exchange these files as well
as meta information about those files.
Specifically, browsers and servers speak the HTTP protocol
Where TCP/IP drives the internet, HTTP drives the web.
HTTP is a stateless, "request/response" protocol that
specifies the means of transport as well as the process for
maintaining the integrity of those multimedia files. It
does so by using the
Multipurpose Internet Mail Extensions (MIME)
specification that describes the transfer and format
of multimedia files.
The web consists of millions of
hyperlinked
files. These millions of files in turn, each may contain
webs of links pointing to other files in the network.
However, because the web is used to deliver files of all types
(audio, video, text, etc), web browsers and servers need some
way of defining what it is that is being linked to and
transported.
To do so, MIME headers are used by HTTP to specify the
contents of any transported file. The header will specify
a file's type.
MIME Types and subtypes examples include the following:
| MIME Type |
MIME Subtype |
| Application |
msword |
| Application |
pdf |
| Audio |
aif |
| Audio |
mpeg |
| Image |
gif |
| Image |
jpeg |
| Image |
bmp |
| Multipart |
form-data |
| Multipart |
mixed |
| Text |
html |
| Text |
plain |
The list is hardly exhaustive of course, and in fact web
servers and web browsers can easily extend the MIME
specification to add new MIME types. All you need to do is
make sure that the server is configured to output
the new type and that browsers are configured to expect the
new type.
Getting browsers to understand new types is usually a function
of the options or preferences settings in that browser.
Consider the Netscape preferences dialog.
MIME types are specified as part of the "HTTP header" which
defines meta-information about the document and the session.
MIME type is specified in the Content-type field.
Thus, if a web server were to send a document of MIME type...
Content-type: application msword
the web browser would know that it should open Word and
load the document.
Besides specifying the MIME type, the HTTP header also contains
other important information including the following:
| Header |
Description |
| Accept |
Specifies what types of media output the client is
prepared to handle. Often, a client will specify several
types of media that is can handle such as in the following
case:
Accept: image/gif
Accept: image/jpeg
Alternatively, a web browser might specify that it is
prepared to handle "any" media using the following line:
Accept: */*
|
| Authorization |
Specifies whether or not the user has permission to access
a secure area. |
| Content-encoding |
Specifies that the message body is encrypted, compressed,
or encoded. |
| Content-type |
Indicates the media type of the information in the message
body. |
| Content-length |
Specifies the number of bytes in the message body for
requests with a message body. |
| Date |
Indicates the date and time of a request if the request
has a message body. |
| From |
Provides the email address of the user using the client
if it is available |
| If-modified-since |
Tells the server not to deal with the request if the
document has not been modified since a given time. |
| Mime-version |
Specifies the MIME version used to generate the message
body. |
| Pragma |
Contains any additional information that the client wishes
to specify to the server. |
| Referer |
Indicates the URL of the page from which the request was
made. (This request header is misspelled in the protocol
itself). |
| User-agent |
Specifies the name and version number of the web browser
making the request. |
Transmission Control Protocol (TCP)
Introduction to the Web Application Development Environment (Tools)
Constructing a Web Application Development Environment Introduction to Transmission
|