Deep dive into HTTP

HTTP Request:

  • Start-line — This describes the HTTP Method (such as Get, Put, or Post), the request-target (such as an URL, or Port), and the HTTP version (such as HTTP/1.1). This start-line is always a single line.
  • Request Headers — An optional set of HTTP headers specifying the request. Types of Headers are explained below..
  • Blank Line This confirms that all the request meta-data has been sent.
  • Body (Optional) — This contains all the data associated with the request. There are typically two categories explained below..

HTTP Response:

  • Start-line — This usually includes the HTTP protocol version (HTTP/1.1), a status code (such as 200 or 404), and a textual description of the status code (such as “ok”).
  • Response Headers — An optional set of HTTP headers specifying the request. There are multiple different types of headers:
  • Body — This contains all the data associated with the request. There are typically two categories:

History of HTTP:-

  • HTTP 0.9 (1991) — It consisted of a single line containing a GET method and the path of the requested document. The response was just returning a single hypertext document without headers or any other metadata.
  • HTTP 1.0 (1996) — Addition was Request headers and Response headers. Also, the new response headers allowed multiple file types, such as HTML, plain text, images, and more.
  • HTTP 1.1 (1997) — This new version becomes the Internet Standard. This version added many performance enhancements, such as keepalive connections, caching mechanisms, request pipelining, transfer encodings, and byte-range requests.
  • HTTP 2.0 (2015) — This improved the performance of HTTP.
  • HTTP 3.0 (Late 2019) — Based on the QUIC protocol, explained below.

More About HTTP 2.0 — Majorly Used

  • It is binary, instead of textual
  • It is fully multiplexed, instead of ordered and blocking
  • It can use one connection for parallelism
  • It uses header compression to reduce overhead
  • It allows Server Pushing to add responses proactively into the Browser cache.

Future is Here — HTTP 3.0

  • Dramatically reduced connection establishment time
  • Improved congestion control
  • Multiplexing without head-of-line blocking
  • Forward error correction
  • Connection migration

--

--

--

Developer with 3 yrs of industrial experience in developing scalable web applications.

Love podcasts or audiobooks? Learn on the go with our new app.

Recommended from Medium

IoC DIP DI in software, what the

How We Got Sold on Plant Burgers

Eliminating conditional branching

Why Drupal is Ideal Choice for your Web Portal Development? — Aalpha

Connecting to GitLab with SSH

Basic Electronic Components

Introducing DagiPool fundraising protocol

Using Bitbucket in the AWS CodePipeline

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Abhay Jain

Abhay Jain

Developer with 3 yrs of industrial experience in developing scalable web applications.

More from Medium

ContribsGH-A The third way to implement a REST-API in Scala. Asynchronous version using Akka.

Contract and Inheritance

Iterative way of doing Pre-Order Traversal of a Binary Tree using STACK in C++

JVM c1, c2 compiler thread — high CPU consumption?