The request is sent with a first line containing the method to be applied to the object requested, the identifier of the object, and the protocol version in use, followed by further information encoded in the RFC822 header style. The format of the request is:
Request = SimpleRequest | FullRequest SimpleRequest = GET <uri> CrLf FullRequest = Method URI ProtocolVersion CrLf [*<HTRQ Header>] [<CrLf> <data>] <Method> = <InitialAlpha> ProtocolVersion = HTTP/1.0 uri = <as defined in URL spec> <HTRQ Header> = <Fieldname> : <Value> <CrLf> <data> = MIME-conforming-message
The URI is the Uniform Resource Locator (URL) as defined in the specification, or may be (when it is defined) a Uniform Resource Name (URN) when a specification for this is settled, for servers which support URN resolution.
Unless the server is being used as a gateway, a partial URL shall be given with the assuptions of the protocol (HTTP:) and server (the server) being obvious.
The URI should be encoded using the escaping scheme described in the URL specification to a level such that (at least) spaces and control characters (decimal 0-31 and 128-159) do not appear unesacaped.
Note. The rest of an HTTP url after the host name and optional port number is completely opaque to the client: The client may make no deductions about the object from its URL.
The Protocol/Version field defines the format of the rest of the request.. At the moment only HTRQ is defined .
If the protocol version is not specified, the server assumes that the browser uses HTTP version 0.9.
This is a string identifying the object. It contains no blanks. It may be a Uniform Resource Locator [ URL ] defining the address of an object as described in RFCxxxx, or it may be a representation of the name of an object (URN, Universal Resource Name) where that object has been registered in some name space. At the time of writing, no suitable naming system exists, but this protocol will accept such names so long as they are distinguishable from the existing URL name spaces.
Method field indicates the method to be performed on the object identified by the URL. More details are with the list of method names below .
These are RFC822 format headers with special field names given in the list below , as well as any other HTTP object headers or MIME headers.
The content of an object is sent (depending on the method) with the request and/or the reply.