Basic HTTP
Status of this memo
This document is an Internet Draft.
Internet Drafts are working documents
of the Internet Engineering Task
Force (IETF), its Areas, and its
Working Groups. Note that other
groups may also distribute working
documents as Internet Drafts.
Internet Drafts are working documents
valid for a maximum of six months.
Internet Drafts may be updated, replaced,
or obsoleted by other documents
at any time. It is not appropriate
to use Internet Drafts as reference
material or to cite them other than
as a "working draft" or "work in
progress".
This document is a DRAFT specification
of a protocol in use on the internet
and to be proposed as an Internet
standard. Discussion of this protocol
takes place on the www-talk@info.cern.ch
mailing list -- to subscribe mail
to www-talk-request@info.cern.ch.
Distribution of this memo is unlimited.
Abstract
HTTP is a protocol with the lightness
and speed necessary for a distributed
collaborative hypermedia information
system. It is a generic stateless
object-oriented protocol, which may
be used for many similar tasks such
as name servers, and distributed
object-oriented systems, by extending
the commands, or "methods", used.
A feature if HTTP is the negotiation
of data representation, allowing
systems to be built independently
of the development of new advanced
representations.
Note: This specification
This HTTP protocol is an upgrade
on the original protocol as implemented
in the earliest WWW releases. It
is back-compatible with that more
limited protocol.
This specification includes the following
parts:
The following notes form recommended
practice not part of the specification:
Servers tolerating clients
Clients tolerating servers
Purpose
When many sources of networked information
are available to a reader, and when
a discipline of reference between
different sources exists, it is
possible to rapidly follow references
between units of information which
are provided at different remote
locations. As response times should
ideally be of the order of 100ms
in, for example, a hypertext jump,
this requires a fast, stateless,
information retrieval protocol.
Practical information systems require
more functionality than simple retrieval,
including search, front-end update
and annotation. This protocol allows
an open-ended set of methods to be
used. It builds on the discipline
of reference provided by the Universal
Resource Identifier (URI) as a name
(URN, RFCxxxx) or address (URL,
RFCxxxx) allows the object of the
method to be specified.
Reference is made to the Multipurpose
Internet Mail Extensions (MIME, RFC1341)
which are used to allow objects to
be transmitted in an open variety
of representations.
Overall operation
On the internet, the communication
takes place over a TCP/IP connection.
This does not preclude this protocol
being implemented over any other
protocol on the internet or other
networks. In these cases, the mapping
of the HTTP request and response
structures onto the transport data
units of the protocol in question
is outside the scope of this specification.
It should not however be at all complicated.
The protocol is basically stateless,
a transaction consisting of
- Connection
- The establishment of a
connection by the client to the server
- when using TCP/IP port 80 is the
well-known port, but other non-reserverd
ports may be specified in the URL;
- Request
- The sending, by the client,
of a request message to the server;
- Response
- The sending, by the server,
of a response to the client;
- Close
- The closing of the connection
by either both parties.
The format of the request and response
parts is defined in this specification.
Whilst header information defined
in this specification is sent in
ISO Latin-1 character set in CRLF
terminated lines, object transmission
in binary is possible.
In all cases in HTTP where RFC822
characters are allowed, these may
be extended to use the full ISO Latin
1 character set. 8-bit transmission
is always used.
tableofcontents
Site Hosting: Bronco