HTTP ::浏览器发送请求获取文件,是否等待响应或者他发送下一个文件的请求?

时间:2010-09-06 17:00:24

标签: http httpwebrequest http-headers

HTTP请求如何工作:(如果我有错,请写)

  1. 用户在浏览器中输入http://www.website.com
  2. 服务器向他发送html页面,其中包含指向图像+ css + js文件的链接
  3. 浏览器读取html,其中包含images / css / js文件发送http请求以获取文件
  4. 浏览器发送获取文件的请求,是否等待响应或者发送下一个文件的请求?

    由于

2 个答案:

答案 0 :(得分:3)

大多数浏览器都有一个内部请求队列,按如下方式处理:

请求第一项。如果缓存中有新副本,则表示对缓存的请求。如果具有验证信息(last-mod和/或e-tag)的陈旧副本,这将是条件请求(服务器或代理可以返回304,指示陈旧副本实际上仍然是新鲜的)。否则是无条件请求。

由于返回的实体的呈现需要其他实体,因此这些实体将被放入所需请求的队列中。

队列中已经在同一队列中的请求(例如,如果页面多次使用同一图像)将立即使用相同的实体(因此,如果URI返回随机图像,但您使用它更多在同一页面中,您将获得相同的图像。

请求将立即处理,因此对于网络服务器,图像,CSS等将在HTML完成渲染之前开始下载,或者甚至完成下载。

使用已使用的连接,而不是打开一个新连接,将使用相同协议(HTTP或HTTPS)对同一域的请求进行流水线处理。

请求受到两种限制:对同一域的最大同时请求数以及同时请求的最大总数。

答案 1 :(得分:1)

浏览器通常会向目标服务器启动多个套接字,从而同时在多个套接字上获取内容。这可以与HTTP Pipelining(您要问的内容)结合使用,浏览器在同一个套接字上发送多个请求,而不等待他们的每个响应。

来自维基百科页面:

  

HTTP流水线技术是一种技术   多个HTTP请求   写出没有的单个插座   等待相应的   响应。流水线是唯一的   HTTP / 1.1支持,而不是1.0。