我想知道浏览器如何执行/处理请求。我想知道这一点,因为了解它的工作原理将有助于我了解如何使用浏览器功能实现更好的Web编程,从而实现性能目标。
浏览器如何下载CSS,JS和图像文件?
是一次下载一个资源还是多个资源?
它可以进行多少个并行请求(连接)?
如果在服务器上执行请求并且用户单击停止按钮会发生什么?执行是否会完成,响应会回来吗?或者在服务器站点上,请求暂停了一半?
浏览器如何处理JS执行?
如果可能,请添加有用的链接/信息。 谢谢大家,
答案 0 :(得分:5)
请考虑将其分为多个问题。以下是一些相关信息:
想要检索HTTP资源的Web浏览器或任何Web客户端将构造GET
请求。这包含将请求路由到适当服务器的信息,以及告知服务器正在请求哪个资源的信息。资源可以是HTML页面,图像,Javascript文件或其他任何内容。
当浏览器收到HTML页面时,该页面可能包含指向其他资源的链接(例如,图像标记)。这些指示浏览器提出进一步的请求。
可以并行下载多个资源。如果您的浏览器尝试一次加载多个页面(如在不同的选项卡中),或者浏览器收到一个指向多个资源的HTML页面(如最后一点),则会发生这种情况。从单个主机名,HTTP 1.1规范说最多应该并行下载两个资源(虽然这只是一个指导原则,不能阻止浏览器尝试不这样做)。
Javascript由浏览器解释,就像其他脚本语言由各自的引擎解释一样。
答案 1 :(得分:2)
以通常的方式(例如,http
GET
操作等)。
它依赖于实现,不同的浏览器采用不同的方式。
它依赖于实现;通常,在相同的两个端点之间一次不超过两个(例如,该浏览器与同一服务器通信)。如果从多个服务器检索,可能会更多。其他资源排队等待一个插槽打开。此限制通常由浏览器强制执行,但也可能由服务器强制执行(因此,解除此限制的浏览器可能仍会发现稍后的请求会在服务器对其进行排队时等待一段时间。)
很大程度上取决于他们何时这样做,服务器是什么类型等等。
严格按文件顺序排列。浏览器可以同时下载多个脚本文件,但它将按文档顺序执行它们。这是非常重要的。对页面的进一步处理可能(可能会)等待脚本下载并运行。 (IE支持defer
标记上的script
属性,可让您告诉它在执行脚本之前可以继续处理页面。)