I always felt that the inner workings of the web were a complete mystery to me, because that is the sort of stuff backend developers do. I was wrong. There are lots of lessons to be learned by looking up the right things that connect to the type of work you are doing, and in my case learn more about fascinating things like HTTP.
There is this great talk named TCP and the lower bound of web performance, which is about the beginning of the world wide web and how we got to the point we are today and why it works like it does.
Also in the talk is why we perceive a website to be slow at first and we have to wait: the TCP slow-start.
Computer networks have experienced an explosive growth over the past few years and with that growth have come severe congestion problems. (…) Our investigation of some of these problems has shown that much of the cause lies in transport protocol implementations (not in the protocols themselves): The ‘obvious’ ways to implement a window-based transport protocol can result in exactly the wrong behavior in response to network congestion. – “Congestion Avoidance and Control”
At the end of the talk, there was the question if increasing the congestion window would help to increase performance and avoid latency (because of the TCP slow-start). Turns out that Google has done research which became new standard.
Increasing TCP’s initial congestion window is a small change with a significant positive impact on Web transfer latency. (…) In contrast, a far simpler solution of increasing TCP’s initial congestion window to a value commensurate with current network speeds and Web page sizes is practical, easily deployable, and immediately useful in improving Web transfer latency. – “An Argument for Increasing TCP’s Initial Congestion Window”