HTTP/1.1中存在一个问题,单个TCP连接在同一时刻只能处理一个请求,意思是说:两个请求的生命周期不能重叠,任意两个HTTP请求从开始到结束的时间在同一个TCP连接里不能重叠
在HTTP/1.1存在Pipelining技术可以完成这个多个请求同时发送,但是由于浏览器默认关闭,所以可以认为这是不可行的。在HTTP2中由于Multiplexing特点的存在,多个HTTP请求可以同一个TCP连接中并行进行
那么在HTTP/1.1时代,浏览器是如何提高页面加载效率的呢?主要有以下两点:
维持和服务器已经建立的TCP连接,在同一个连接上处理多个请求
和服务器建立多个TCP连接
举个栗子
在某个快递运输公司上班的快递小哥,每一次上门换新的时候只能在一个时间点处理一个用户换新的问题
(HTTP/1.1中存在一个问题,单个TCP连接在同一时刻只能处理一个请求)
如果有很多个用户都需要换新的话,就只能排队等着快递小哥了
(两个请求的生命周期不能重叠,任意两个HTTP请求从开始到结束的时间在同一个TCP连接里不能重叠)
在最开始的时候,可以让附近的用户前往同一个地点,由快递小哥同时处理换新问题,但是因为这样怕影响用户的使用体验,所以公司禁止了这种行为。
(在HTTP1.1中存在Pipelining技术可以完成这个多个请求同时发送,但是由于浏览器默认关闭,所以可以认为这是不可行的)
后来,公司对自身的APP的功能进行了拓展,就可以使一个快递小哥同时处理多个换新业务
(在HTTP2中由于Multiplexing特点的存在,多个HTTP请求可以在同一个TCP连接中并行进行)
那么在一开始公司的APP没有进行功能拓展的时候该如何处理上述的情况的呢?
(在HTTP1.1时代,浏览器是如何提高页面加载效率的呢)
让快递小哥负责一个小区内的全部换新问题
(维持和服务器已经建立的TCP连接,在同一个连接上处理多个请求)
派多个快递小哥同时去处理这些问题
(和服务器建立多个TCP连接)