Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What is the difference between HTTP/1.1 pipelining and HTTP/2 multiplexing?

Is it because it requires the responses to be made to client in the order of request that causes the head of line blocking problem in HTTP 1.1?

If each request takes exactly an equal amount of time, then there won't be head of line blocking and HTTP 1.1 pipelining and would perform same as that of HTTP/2 multiplexing?

(let's say there is no request priority in HTTP/2 requests and disregard other changes of HTTP/2 such as header compression, binary, etc.)

like image 717
prasun Avatar asked Dec 27 '15 08:12

prasun


People also ask

What is the difference between HTTP 1.1 and HTTP2?

Multiplexing: HTTP/1.1 loads resources one after the other, so if one resource cannot be loaded, it blocks all the other resources behind it. In contrast, HTTP/2 is able to use a single TCP connection to send multiple streams of data at once so that no one resource blocks any other resource.

What are the main differences between HTTP with pipelining and HTTP without pipelining?

HTTP/1.1 without pipelining: Each HTTP request over the TCP connection must be responded to before the next request can be made. HTTP/1.1 with pipelining: Each HTTP request over the TCP connection may be made immediately without waiting for the previous request's response to return.

Does HTTP 1.1 support multiplexing?

Multiplexing resolves the head-of-line blocking issue in HTTP/1.1 by ensuring that no message has to wait for another to finish. This also means that servers and clients can send concurrent requests and responses, allowing for greater control and more efficient connection management.

What is HTTP2 multiplexing?

Multiplexing in HTTP 2.0 is the type of relationship between the browser and the server that use a single connection to deliver multiple requests and responses in parallel, creating many individual frames in this process.


1 Answers

HTTP/1.1 without pipelining: Each HTTP request over the TCP connection must be responded to before the next request can be made.

HTTP/1.1 with pipelining: Each HTTP request over the TCP connection may be made immediately without waiting for the previous request's response to return. The responses will come back in the same order.

HTTP/2 multiplexing: Each HTTP request over the TCP connection may be made immediately without waiting for the previous response to come back. The responses may come back in any order.

like image 136
Elijah Lynn Avatar answered Oct 04 '22 03:10

Elijah Lynn