HTTP请求如何工作:(如果我有错,请写)
浏览器发送获取文件的请求,是否等待响应或者发送下一个文件的请求?
由于
答案 0 :(得分:3)
大多数浏览器都有一个内部请求队列,按如下方式处理:
请求第一项。如果缓存中有新副本,则表示对缓存的请求。如果具有验证信息(last-mod和/或e-tag)的陈旧副本,这将是条件请求(服务器或代理可以返回304,指示陈旧副本实际上仍然是新鲜的)。否则是无条件请求。
由于返回的实体的呈现需要其他实体,因此这些实体将被放入所需请求的队列中。
队列中已经在同一队列中的请求(例如,如果页面多次使用同一图像)将立即使用相同的实体(因此,如果URI返回随机图像,但您使用它更多在同一页面中,您将获得相同的图像。
请求将立即处理,因此对于网络服务器,图像,CSS等将在HTML完成渲染之前开始下载,或者甚至完成下载。
使用已使用的连接,而不是打开一个新连接,将使用相同协议(HTTP或HTTPS)对同一域的请求进行流水线处理。
请求受到两种限制:对同一域的最大同时请求数以及同时请求的最大总数。
答案 1 :(得分:1)
浏览器通常会向目标服务器启动多个套接字,从而同时在多个套接字上获取内容。这可以与HTTP Pipelining(您要问的内容)结合使用,浏览器在同一个套接字上发送多个请求,而不等待他们的每个响应。
来自维基百科页面:
HTTP流水线技术是一种技术 多个HTTP请求 写出没有的单个插座 等待相应的 响应。流水线是唯一的 HTTP / 1.1支持,而不是1.0。