【问题标题】:Trying to figure out origin of HTTP Request试图找出 HTTP 请求的来源
【发布时间】:2012-06-17 15:08:18
【问题描述】:

Web 应用程序正在发出 HTTP 请求,但我无法理解它是如何发出请求的。它只是在绘制一页后完成。之前的请求中没有 302,也没有任何明显的信息可以告诉我这个请求是如何发出的。

如果我可以设置一个断点,它将在下一个 HTTP 请求即将发送之前停止,这会有所帮助。然后在页面被绘制之后,我会启用它并找出是谁在发送它 Firebug 让我为 XHR (Ajax) 请求执行此操作,但不适用于普通请求。这是一个普通的 HTTP 请求,而不是 AJAX 请求。

是否可以使用 chrome 或 IE 中的调试工具来做到这一点?

【问题讨论】:

    标签: internet-explorer firebug google-chrome-devtools


    【解决方案1】:

    Chrome 有一个 firebug 版本。 http://getfirebug.com/firebuglite

    Fiddler 支持 HTTPS。它仅适用于 Windows,但您没有指定平台。

    【讨论】:

      【解决方案2】:
      • 从你说的看,如果不是XHR,那一定是从上一页跳转过来的JavaScript重定向。
      • 禁用JavaScript并查看代码,搜索类似的代码
        • location = ...
        • location.href = ...
        • window.location = ...
        • window.location.href = ...
      • 或类似于 HTML 的 <head> 中的 <meta http-equiv="refresh" content="0;URL='http://example.com/'">
      • 使用Tamper Data,启用篡改后,您可以逐个发送请求,并在每个请求之前暂停。
      • 另外,你可以使用Fiddler查看浏览器发起的所有HTTP请求,并做advanced debugging (see bp* commands)
      • 您还可以访问 Firebug 的 Net panel 并单击“Persist”以观察所有请求,即使在重定向之后也是如此。

      【讨论】:

        【解决方案3】:

        在 Chrome DevTools 中,转到 Network 面板。在最左侧的列中按名称查找相应资源,然后查看 Initiator 列。它将指定发起资源加载的对象。它可以是一个Script,在这种情况下,它还将包含一个指向相应脚本行的超链接,该脚本行加载了资源。 Parser 启动器也是如此 - 如果它是加载您的资源的那个,它会给您一个指向相应 HTML 行的超链接。

        【讨论】:

        • 巴甫洛,谢谢。我试试这个,但线条不匹配。告诉我来源是它一直提交到的 JSP。
        • 您是否尝试导航到您的 JSP 输出资源中的指责行?它真的命名了有问题的资源吗?
        • 它做到了,但它所指的没有任何意义。我遵循文件/行引用并指向文件末尾或对 HTML 5 视频标签的引用。
        • 啊哈,那么 Initiator 值是多少?是解析器吗?这听起来像是一些 JavaScript 代码向页面 DOM 添加了一个新元素(例如 <script src="..."><link href="...">),并具有实际加载资源的效果。你能检查所有可用的 JavaScript 来支持这个假设吗?
        • 我得到了对映射到 JSP 的 Struts Forms 的引用,但行号不匹配任何重要的内容,我还得到对 jquery 作为发起者的引用:jquery-all-1.2.js:16,我还获得了 chrome-extension://iembbpgndebhceoikoilmlndnemmamgp/jquery-1.7.1.js:1553 作为发起人。任何更多的想法或提示表示赞赏。
        【解决方案4】:

        首先我是如何得到它的。

        1. 在浏览器上禁用 javascript - 问题仍然发生这意味着 我可以统治 javascript 发送它。
        2. 将 Firefox 上的最大连接数设置为 1,这意味着发生了请求 按顺序排列,这样我就可以缩小我提出请求的时间/地点 无法解释被发送的原因。
        3. 终于找到了这样一个HTML视频标签

        <video id="my_video" class="video-js" width="313" height="240" controls="controls"        preload="none" poster="#">
        

        poster="#" 部分是罪魁祸首。如果没有要显示的视频,这会向包含页面发送请求。

        【讨论】:

          猜你喜欢
          • 2019-09-02
          • 2018-02-20
          • 1970-01-01
          • 2019-06-21
          • 1970-01-01
          • 1970-01-01
          • 2014-05-05
          • 2014-01-06
          相关资源
          最近更新 更多