【问题标题】:How do web browsers execute and process requests?Web 浏览器如何执行和处理请求?
【发布时间】:2010-01-31 23:17:23
【问题描述】:

我想知道浏览器如何执行/处理请求。我想知道这一点,因为了解它的工作原理将帮助我了解如何更好地完成 Web 编程,从而使用浏览器功能实现性能目标。

  1. 浏览器如何下载 CSS、JS 和 Image 文件?

  2. 它是一次下载一个资源还是多个?

  3. 它能发出多少并行请求(连接)?

  4. 如果请求在服务器上执行并且用户单击停止按钮会发生什么?执行会完成并且响应会回来吗?还是在服务器站点请求中途暂停?

  5. 浏览器如何处理JS执行?

如果可能,请添加有用的链接/信息。 谢谢大家,

【问题讨论】:

  • 您可能应该将其拆分为单独的问题。这里有一堆只是松散相关的问题。
  • 是的,你是对的。有点困难,但我尝试拆分问题,但它对我来说似乎是一个 META 问题,它可能可以回答我的一些与 AJAX、JavaScript、HTTP 相关的问题。所以我把它加入了俱乐部,希望有人能给我带来好的答案。

标签: http browser


【解决方案1】:

请考虑将其拆分为多个问题。以下是一些相关信息:

  • Web 浏览器或任何 Web 客户端想要检索 HTTP 资源将构造一个 GET 请求。这包含将请求路由到正确服务器的信息,以及告诉服务器正在请求哪个资源的信息。资源可以是 HTML 页面、图像、Javascript 文件或其他任何内容。

  • 当浏览器接收到 HTML 页面时,该页面可能包含指向其他资源(例如,图像标签)的链接。这些指示浏览器发出进一步的请求。

  • 可以并行下载多个资源。如果您的浏览器尝试一次加载多个页面(例如在不同的选项卡中),或者如果浏览器收到指向多个资源的 HTML 页面(如最后一点),则可能会发生这种情况。从单个主机名开始,HTTP 1.1 规范规定最多应该并行下载两个资源(尽管这只是一个指导方针,并不能阻止浏览器尝试以其他方式下载)。

  • Javascript 由浏览器解释,就像其他脚本语言由各自的引擎解释一样。

【讨论】:

    【解决方案2】:
    1. 以通常的方式(例如httpGET操作等)。

    2. 它依赖于实现,不同的浏览器做的不同。

    3. 它依赖于实现;但是,通常在相同的两个端点之间一次不超过两个(例如,该浏览器与同一服务器通信)。如果从多个服务器检索可能会更多。其他资源排队等待插槽打开。此限制通常由浏览器强制执行,但也可能由服务器强制执行(因此解除此限制的浏览器可能仍会发现稍后的请求在服务器将它们排队时等待一段时间。

    4. 这在很大程度上取决于他们何时执行此操作、使用哪种服务器等。

    5. 严格的文档顺序。浏览器可以同时下载多个脚本文件,但它会执行它们以文档顺序。这个非常重要。页面的进一步处理可能(可能会)被阻止等待脚本下载并运行。 (IE 支持 script 标签上的 defer 属性,让您告诉它它可以在执行脚本之前继续处理页面。)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-07-08
      • 1970-01-01
      • 1970-01-01
      • 2017-12-08
      • 2019-06-14
      • 2019-05-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多