Why does your browser limit the number of concurrent network calls?

But why does the browser limit the number of calls at all?

To understand this lets first understand what happens when a network call is initiated.

What happens when you make a network call?

HTTP 1.0

Can we make multiple requests using the same connection?

HTTP 1.1: Persistent connection

Can we not have concurrent requests within a single connection?

HTTP 1.1: HTTP Pipelining

So you mean we can have any number of concurrent requests using HTTP Pipelining?

HTTP Pipelining did speed up the loading time of HTML pages, but multiple problems incurred with it.

Then how do we achieve concurrent requests now?

The only way possible to achieve concurrent requests is by making use of multiple persistent connections.

So what is the number of connections that a browser can make at a time?

The answer to this is the first part of this article.

What about our original question? Why limit the number of concurrent connections?

By now you might be aware that each connection requires some resources to be allocated from the server. In addition to this, a server has to maintain information on each and every connection request, hence too many connections imply a lot of burden for the server.

What about HTTP 2.0

HTTP 2.0 aka SPDY, unlike HTTP 1.X, can have multiple concurrent requests. more about it here



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
Ishwar Rimal — @theHumbleBeing

Ishwar Rimal — @theHumbleBeing


I write articles on JavaScript, electron, and react. Opted for curators for better reach, not money. Open link in incognito to read for free (or contact me)