【问题标题】:Difference between 2 types of HTTP GET requests from inside browser来自浏览器内部的两种 HTTP GET 请求之间的区别
【发布时间】:2014-01-17 15:02:15
【问题描述】:

如果我打开浏览器并转到http://example.com/myapp,浏览器将从网络服务器获取 HTML 文件,解析 HTML,然后将其加载为 window.document。

但我也可以像下面的 jQuery 示例一样执行 AJAX 查询:

$.ajax({
    url: "http://example.com/myapp",
    success: onSuccess
});

在这里,在这种情况下,浏览器对相同的 HTML 内容执行异步请求,但它不一定将该内容加载到 window.document。 然后代码需要显式地使用户可见的 HTML。

我的问题是:这两种类型的 HTTP GET 有什么区别,它们都从 Web 服务器请求同一个文件。为什么前者的结果是用户看到了一个新的网页,而后者只是获取 HTML 并给 JavaScript 开发人员 option 显示与否?

【问题讨论】:

  • 因为这正是它应该做的。加载页面应显示该页面;发送任意 HTTP 请求应返回响应。如果是 JSON 呢?
  • 服务器看到基本相同的请求(可能的标头差异),主要区别在于浏览器如何发出请求
  • 您是否正在尝试解决一些实际问题,或者您只是在考虑一般的浏览器实现?

标签: javascript dom browser dhtml http-get


【解决方案1】:

所涉及的 HTTP 请求 之间没有太大意义的区别。重要的是浏览器如何处理响应。这只是网络浏览器的功能。它只是一个软件,它可以决定对 HTTP 请求的响应做任何它想做的事情。

请注意,浏览器知道不同的 HTTP 事务是如何启动的。因此,它只是以一种从可观察行为中隐含明显的方式在内部跟踪差异。如果某些 JavaScript 代码发起 AJAX HTTP 请求,它可以确信响应将通过状态更改事件传递给它,并且浏览器不会自发决定更新页面。

浏览器内部管理一组并发 HTTP 请求的精确方式几乎是内部架构细节。

【讨论】:

    猜你喜欢
    • 2017-02-15
    • 2013-02-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-03
    • 2017-01-27
    • 1970-01-01
    相关资源
    最近更新 更多