HTTP protocol enables web servers and browsers to exchange data over the
Internet or an intranet. The
World Wide Web Consortium (W3C), and international
community that develops standards, is responsible for revising and maintaining
In general an HTTP-based Uniform Resource Locator(URL) has below format:
protocol://[host.]domain[:port][/context][/resource][?query string path variable]
protocol://IP address[:port][/context][/resource][?query string path variable]
The HTTP request consists of three components:
- Method, Uniform Resource Identifiers(URI), Protocol/Version
- Request headers
- Entity body
HTTP Request Example:
POST /examples/default.jsp HTTP/1.1 Accept: text/plain; text/html Accept-Language: en-gb Connection: Keep-Alive Host: localhost User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.5; en-US; rv:18.104.22.168) Gecko/20100625 Firefox/3.6.6 Content-Length: 30 Content-Type: application/x-www-form-urlencoded Accept-Encoding: gzip, deflate (CRLF) lastName=Blank&firstName=Mike
POST /examples/default.jsp HTTP/1.1
The method-URI-protocol version appears as the first line of the request.
Here the POST is the request method, an HTTP request can use one the many
request methods specified in the HTTP standards. HTTP 1.1 supports seven
TRACE. GET and
POST are the most commonly used in Internet applications.
In an HTTP request, the request header contains useful information about
the client environment and the entity body for the request. For instance,
it may contain the language the browser is set for, the length of the
entity body, and so on.
Each header and entity body is separated by a
carriage return/linefeed (CRLF) sequence
Below is the
entity body for example HTTP request:
Similar to the HTTP request, the HTTP response also consists of three parts:
- Protocol, Status Code, Description
- Response headers
- Entity body
HTTP Response Example:
HTTP/1.1 200 OK Server: Apache-Coyote/1.1 Date: Thu, 29 Sep 2013 13:13:33 GMT Content-Type: text/html Last-Modified: Wed, 28 Sep 2013 13:13:12 GMT Content-Length: 112 (CRLF) <html> <head> <title>HTTP Response Example</title> </head> <body> Welcome to Brainy Software </body> </html>
The first line of the response header is similar to the first line of the request header.
It tells you that the protocol used is HTTP version 1.1 and that the request succeeded.
200 is only issued if the web server was able to find the resource requested.
If a resource cannot be found or the request cannot be understood, the server sends a different
status code. For instance
401 is the status code for an unauthorized access and
the http method is not allowed.
The entity body of the response is the HTML content of the response iteself. The headers and the
entity body are separated by a sequence of