I am Amit Shekhar, a mentor helping developers in getting high-paying tech jobs.
Before we start, I would like to mention that, I have released a video playlist to help you crack the Android Interview: Check out Android Interview Questions and Answers.
In this blog, we will learn about the evolution of HTTP.
HTTP has seen the following version in its evolution.
- HTTP 1.0
- HTTP 1.1
- HTTP 2.0
- HTTP 3.0
This article was originally published at amitshekhar.me.
Each version has some problems, and in order to get rid of those problems, it has to update itself. That's why HTTP kept on evolving like any other technology.
So, we will discuss each of the versions of HTTP, the problem with that version, and how it got solved in the updated version.
Let's start with HTTP 1.0
This was the first version of HTTP. It has a problem.
Problem: Each request to the same server needed a new TCP connection.
We needed a solution for that, and HTTP 1.1 was introduced to solve this problem.
It solves the HTTP 1.0 problem. But it has another problem.
Problem: HOL blocking issue. HOL(head-of-line) blocking issue - new request had to wait for the earlier request to complete.
HOL blocking issue at two layers:
Again, we needed a solution for that, and then HTTP 2.0 was released to solve this problem.
It solves the HTTP 1.1 problem of the HOL issue at the application layer using request multiplexing. But the HOL blocking issue at TCP was the problem.
Problem: HOL blocking issue at TCP.
And once again, we need a solution for that, and with the release of HTTP 3.0, this problem got solved.
It solves the HOL blocking issue at TCP. It uses QUIC(Quick UDP Internet Connections) which is based on UDP.
This is how HTTP has evolved from HTTP 1.0 to HTTP 1.1 to HTTP 2.0 to HTTP 3.0.
Master Kotlin Coroutines from here: Mastering Kotlin Coroutines
That's it for now.
You can connect with me on: