Skip to content
Janvi Talreja edited this page Dec 13, 2022 · 7 revisions

HTTP

  1. Stands for HyperText Transfer Protocol.

  2. It is the common language between the Clients and the Servers.

  3. HTTP was proposed by Tim Berners Lee around 1991.

  4. The motivation and high-level design goals for HTTP:

    1. File Transfer functionality.
    2. Ability to request an index search of a hypertext archive.
    3. Ability to refer the client to another server.
  5. This makes it a very simple and telnet friendly protocol.

  6. The request consisted of a single line, the GET method, and the path of the requested document.

  7. The response will be a simple and single hypertext document.

  8. Features of HTTP 0.9:

    1. Client-server, request-response protocol.
    2. Designed to transfer hypertext documents(HTML).
    3. The connection between the client and server is closed after every response.

HTTP 1.0

  1. From 1991 to 1995, there was a rapid evolution of HTML, and the emergence of web browsers also started.
  2. The first popular browser NCSA Mosiac was also born.
  3. Then Netscape released the Netscape Navigator 1.0 in 1994.
  4. Now we needed a protocol that could serve more than just hypertext documents, provide richer metadata about the request and responses, enable content negotiation.

The new changes included the following:

  1. Request line had HTTP version number followed by the request headers.
  2. Response status followed by response headers.

The following were the major changes from version 0.9:

  1. Request may consist of multiple newline separated header fields.

  2. Response object is prefixed with a response status line.

  3. Response object has its own set of newline separated header fields.

  4. Response object is not limited to hypertext.

  5. The connection between server and client is closed after every request

HTTP 1.1/ Internet standard

A lot of critical performance optimizations like keepalive connections, chunked encoding transfers, byte-range requests, additional caching mechanisms, transfer encodings, and request pipelining.

  1. We can have multiple object requests, both delivered on a single connection.
  2. The connection is keepalive, which allows us to reuse the existing TCP connection for multiple requests to the same host and deliver a much faster end-user experience.
  3. Here the connection is explicitly closed by sending the close token to the server via the Connection header.
  4. The HTTP/1.1 protocol also added content, encoding, character set, and even language negotiation, transfer encoding, caching directives, client cookies, plus a dozen other capabilities that can be negotiated on each request.

HTTP 2/ Improving Transport Performance