【问题标题】:WireShark doesn't decode gzip'ed http traffic on WindowsWireShark 不会在 Windows 上解码 gzip 的 http 流量
【发布时间】:2012-10-07 04:57:10
【问题描述】:

你们知道为什么 WireShark 可能拒绝在 Windows 上解码 gzip 的 http 流量吗?

我的配置

  • WireShark 1.8.3
  • Windows 7 Ultimate x64
  • WinPcap 4.1.2

在 Preferences/Protocols/HTTP 中选中“Uncompressed entity body”选项。

这是我的“Follow TCP Stream”对话框的样子:

当我第一次打开这个对话框时,下面的单选按钮设置为“Raw”,但是当我点击“ASCII”时没有任何变化。

有什么想法吗?

【问题讨论】:

    标签: http gzip wireshark network-analysis


    【解决方案1】:

    如果您查看“基于行的文本数据”条目下的协议树,您将看到未压缩的数据。 “Follow TCP Stream”对话框仅显示 TCP 有效负载的内容,不会将其解释为 HTTP 或 gzip 压缩数据或其他任何内容。对话框上的按钮允许您设置流字节的显示格式。

    您可以右键单击未压缩的数据(见下面的红色#)并选择“导出选定的数据包字节...”以保存到文件

    【讨论】:

    • 谢谢!不幸的是,我不确定我是否理解您所指的内容。我在 UI 中找不到“基于行的文本数据”。您能否详细说明或/或者添加屏幕截图?
    • 在按顺序列出所有协议的数据包详细信息窗格中,“超文本传输​​协议”条目下方的底部将有一个项目,称为“基于行的文本数据”。在十六进制字节窗格的“未压缩实体主体”中,还将有完整的十六进制和 ASCII 数据转储。 bugs.wireshark.org/bugzilla/show_bug.cgi?id=3528 也有一个长期存在的增强请求,以使 Follow TCP 流对话框显示未压缩的数据。
    • 这真是太不幸了。我来看看源代码。也许我可以实现它。
    • 在答案中添加了屏幕截图
    • @GrahamBloice 错误 3528 已解决
    【解决方案2】:

    就当前的 Wireshark 而言,接受的答案是正确的答案——但使用 IMO 相当笨拙。

    所以我编写了一个小脚本wireshark-http-gunzip(需要 Ruby)将整个输出转换为您期望的格式。希望在这里绊倒的人发现它很有用。

    【讨论】:

      【解决方案3】:

      现在 Wireshark 提供支持。只需右键单击标识为 HTTP(协议列 = HTTP)的数据包顶部,然后单击“关注”和“HTTP 流”。这应该将压缩响应解码为纯文本。

      【讨论】:

      • 看起来 gzip 只有在网站使用 HTTP 1 时才会被解码。如果网站使用 HTTP 2(例如使用 Cloudflare 的网站),gzip 不会被解码,并且选项遵循“HTTP蒸汽”是灰色的。知道如何使它工作吗?
      猜你喜欢
      • 2017-09-18
      • 2023-03-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-26
      • 2018-08-23
      • 2012-04-21
      • 2018-07-06
      相关资源
      最近更新 更多