I. INTRODUCTION1 T he HTTP is a kind ofprotocol used in transfer of information around the web. As the name Hyper TextTransfer Protocol clearly says that the protocol is related to transfer of dataon different machines. The word Hypertext was coined by Ted Nelson. An Englishengineer and computer scientist named Tim Berners-Lee was credited developmentof protocol HTTP and language HTML (Hyper Text Markup Language). The initialrelease was HTTP/0.9 version which was basic model with no complex features.
Itwas just used to transfer data to different machines. Then Dave Raggett took upthe mantle to enhance its features and he led the HTTP Working Group who laterintroduced HTTP v1.0 and HTTP/1.1. Most of the browsers catching up to theseprotocols and within a year almost 65% of the browsers were compatible withthese protocols. As this protocol developed, many more devicesstarted to get connected to each other as other browsers also started to getcompatible with these newer versions. This was just the start of something bigas it lead to the development of the now known Internet because internet isbasically just web pages written in HTML and transferred between machines viaHTTP.
Now internet usage is not just restricted to thetransfer of web pages and requests in constrained extensions, instead, it hasallowed many users to send and receive complex extensions like MIME which iscurrently used in mailing websites. II. How HTTP works We know that HTTP is a communication process which involves asequence of requests and responses between client and server. The first thingthat is done is a connection between the server and client is established. Thisis done by creation of a connection object. Now the HTTP is a statelessprotocol which means that there is no memory of what was done previously. Theserver will not know whether that client had previously connected to it or not.So a new connection had to be established every time any request was promptedin the previous versions.
The connection that is necessary was previously called nonpersistent in which browsers often opened connections to fetch related data.This method increased the resources usage and incurred a huge overhead on theservers as they were running simultaneously many connections together. Thisproblem was solved in the later versions as the allowed persistent connectionsin which a single TCP connection was kept alive for all the communicationbetween the machines. These connections were also known as keep-aliveconnection.These connections were nothing but a pair of request and response withspecific syntax called connection headers. The connection is initiated by thebrowser and a request is sent to the server for suppose a web page. When thisrequest reaches the server, it responds back with the requested web page if noerror is occurred which is called the response. In case of web page request,the response is an HTML file which is fetched by recurrent jumps.
The connection between the server and client is not that simple asit seems. It involves various steps. For example, if a client wants to access awebsite then a request is sent to the DNS server to get the address of thedesired server.
Once getting the address, the request for establishment ofconnection is sent to that server. If the server deems the request valid, itresponds to request and acknowledges the connection. Now as the connection isestablished, further requests can be made under the same connection object incases of persistent connections. The request header that is send includes variousfields like the method type, address, port number, cache id( if any) etc.1