当使用HTTP/2时,浏览器通常仅针对每个域名打开一个连接。
在您的示例中,index2.html将通过用于index.html、a.css和a.js的同一TCP连接发送。
在HTTP/2中,请求在同一TCP连接上复用,以便浏览器可以并发发送它们,而无需等待先前的请求的响应。
浏览器和服务器都有TCP连接的空闲超时时间。如果连接空闲时间足够长,任何一方都会关闭连接-具有较短空闲超时时间的那一方会关闭连接以节省资源。例如,您可能打开到wikipedia.org的连接,执行几个请求,然后离开该选项卡并处理其他内容。一段时间后(通常为30秒),浏览器将关闭与wikipedia.org的TCP连接。
在服务器端,服务器将保持来自各个客户端的连接,直到客户端关闭它们或直到超过服务器端空闲超时时间,此时由服务器启动TCP连接的关闭。
使用HTTP/2,服务器必须维护的连接数量远远少于HTTP/1.1。使用HTTP/2,服务器只需维护每个客户端1个TCP连接;使用HTTP/1.1,服务器通常必须维护每个客户端2-8个TCP连接。