Wireshark 如何从 HTTP Post 方法中获取所有信息? (string-format)

How does Wireshark gets all the information from a HTTP Post Method ? (string-format)

Wireshark 使用什么确切的字符串格式来 'sniff' HTTP POST-method 中的 user-inserted 值(例如带有用户名和密码的 login-form )?

更具体地说,我很好奇允许这样做的 HTTP Header 字段是什么,因为在 Wireshark 的输出中缺少 Header 字段名称(我可以看到所有其他字段- 例如 User-Agent、Content-Type、Content-Length 等)。

我想知道,因为我是一个 httpry 用户,我很好奇是否有可能 'cutting the man in the middle'(我用 httpry 创建的 .dump 文件可以在 Wireshark 中打开,我可以获得我需要的所有信息从那里 - 当然是在应用过滤器之后)。

不要误会我的意思,我知道 Wireshark 是一种比 httpry 复杂得多的机制,但我只是好奇 Wireshark 如何使用来自 httpry 的 .dump 提供所需的输出,如果我能得到结果 (即使是十六进制)在 httpry 中。

感谢您的耐心等待,希望我说清楚了。

您说的是 HTML form. If the form is being submitted with a POST request, then the "form data set" is sent as the message,这意味着它在 POST 请求的 body 中。

表示Content-Type和Content-Length是相关的header; Content-Type表示数据使用的格式,Content-Length表示该格式数据的字节数。表单数据是 not in a header.

因此您必须解析请求行以确定它是 POST,然后解析以下行,查找 Content-Type 和 Content-Length(可能还有一些也编码 headers),直到你看到一个空行。空行是header行的结尾;接下来是请求的body。这就是您需要作为表单数据处理的内容。如果有一个 Content-Length 字段,则准确解析 body 的那么多字节;否则,解析直到 TCP FIN(数据流结束)。如果正在使用分块或压缩编码,则必须处理它们。