代码之家  ›  专栏  ›  技术社区  ›  Derek Litz

将HTTP请求映射到HTTP响应

  •  7
  • Derek Litz  · 技术社区  · 16 年前

    如果我向同一台服务器发出多个HTTP Get请求,并向每个服务器获得HTTP 200 OK响应,那么如何使用Wireshark判断哪个请求映射到哪个响应?

    目前,它看起来像是发出了一个http请求,并且下一个http 200 OK响应被快速接收,因此所有内容都处于正确的顺序中。然而,我却看到了相反的情况。例如,使用Google Maps API v2,我多次请求位置信息,然后以任意顺序接收信息(与我请求的顺序非常相似,但不一定完美)

    虽然我的直觉不能按照我的时间顺序来接收它们,但我的直觉也不能按照我的时间顺序来接收它们。所以我想知道如何从回复中确定这个顺序。

    更新:澄清我需要什么。我只需要知道服务器已经收到请求。看起来我需要通过查看序列号甚至ACK来实现这一点。这种方法背后的原因是,我基本上是在观察一个web应用程序,并检查它是否正在发送信息以及是否正在接收信息。

    更新:这与wireshark无关。我相信这会让人困惑,所以我把它从标题中删除了。它与TCP/IP协议之上的HTTP协议以及我们如何将响应映射到请求有关。

    谢谢

    4 回复  |  直到 13 年前
        1
  •  15
  •   filippo    16 年前

    停止捕获数据包后,请执行以下步骤:

    1. 将光标定位在GET请求上

    2. 打开分析菜单

    您将获得一个按顺序显示请求和响应的新窗口。

        2
  •  5
  •   eitama    12 年前

    HTTP规定响应必须按照请求的顺序到达,因此,如果您在给定时间查看单个TCP连接,您应该看到:

    同样在HTTP/1.1中,还支持“管道”,客户机不必等待响应到达才能发出下一个请求。在这种情况下可以观察到:

    要求反应;要求要求反应;反应;要求回应

    当调试/观察单个TCP连接时,Filipo的建议是经典的,但是,当观察多个TCP连接时,您不能单击follow TCP流,因为您必须为每个连接执行该操作。

    如果有许多TCP连接和许多请求/响应,则必须查看请求数据包中的TCP源端口和响应数据包中的TCP dest端口,以了解哪个响应与每个TCP连接相关,然后应用HTTP请求/响应顺序规则。

    此外,Wireshark可以解压响应体,如果所有响应体都已到达,它将自动解压,但不会在后续TCP流中解压。

    我总是使用Wireshark调试HTTP。

        3
  •  3
  •   Derek Litz    16 年前

    HTTP只假定一个可靠的
    可以使用这种担保;这个 HTTP/1.1请求和 响应结构到
    所讨论的问题不在本报告的范围之内

    阅读更多: http://www.faqs.org/rfcs/rfc2616.html#ixzz0e20kxKcz

        4
  •  2
  •   Zombies    16 年前

    不要使用Wireshark调试HTTP,请使用HTTP调试器,如 Fiddler2

    推荐文章