Hypertext Transfer Protocol, HTTP

The Hypertext Transfer Protocol (HTTP) is an application protocol for distributing images, videos, text, and other content for communicating over the worldwide web (Internet), through a web browser. The HTTP is a request to a server in the form of text and the response from the server will be in the form of a web page, usually a website, with the content containing the information requested.

The HTTP is designed to permit communication of resources between clients and servers. These resources are identified by using Uniform Resource Locators (URLs) typed into a web browser’s address bar usually beginning with http.

HTTP/1.1 is a revised version of the original HTTP using a separate connection to the same server, and can reuse the connection multiple times to display images, scripts, texts, etc. after the web page has been delivered. This provides for a more efficient data transfer by not being subject to the maximum rate of data transfer.

The first version of HTTP was HTTP V0.9 in 1991. Dave Raggett in 1995 wanted to expand the protocol of the original HTTP, so in 1996 HTTP V1.0 was introduced. All the major web browser developers began adopting the new HTTP/1.1 in their programs in early 1996. January 1997 HTTP/1.1 was defined as the standard for use in all web browsers and in June 1999 updates and improvements were released.

The original HTTP/0.9 and the HTTP/1.0 connection is closed after a single request and response. In the HTTP/1.1 the connection could be reused for more than one request. Also introduced in the HTTP/1.1 was chunked transfer encoding which allows streaming data instead of buffering; in turn users can send multiple requests. Another improvement was byte serving, where only a portion of the resource is sent when that portion only is requested by the user.

An HTTP session is a sequence of network requests and response transactions. A user initiates a request, an HTTP server reads the request, then the server sends back a status line, such as “HTTP/1.1 200 OK”, and a message of its own. The body of this message is typically the requested resource, website, or other pages, sometimes in the form of an error message.

HTTP/1.1 uses several methods to indicate the action to be performed by the resource. These methods are:

GET: Requests a representation of the resource.

Head: Asks for the same response as the GET, but without the response body.

POST: Request that the server accepts the request as a new subordinate of the resource identified by the URL.

PUT: Request that the data be stored in the URL, if it is an existing resource it is modified. If it’s not an existing resource then the server creates one.

DELETE: Delete the resource.

TRACE: Echoes the request so the client can see what changes have been made by the server.

OPTIONS: Returns the supported methods from the HTTP for a specific URL to check the functionality of the web server.

CONNECT: Converts the request connection to a transparent tunnel to accept encrypted HTTPS.

PATCH: Used to apply partial modifications to a resource.

The HTTP servers are required to use at least the GET and HEAD methods, and whenever possible they are to use the OPTIONS method. Safe methods used are HEAD, GET, OPTIONS, and TRACE, whereas POST, PUT, and DELETE could cause side effects to the server or external effects in financial transactions or transmissions of email.

There are three methods of establishing a secure HTTP connection: HTTP Secure, Secure Hypertext Transfer Protocol and the HTTP/1.1 Upgrade header. Browser support for the latter two is, however, nearly non-existent, so HTTP Secure is the dominant method of establishing a secure HTTP connection.

Image Credit: Photos.com