pis*_*hio 4 networking compression tcpdump
假设我有一个应用程序服务器 (Linux) 在端口 80 上运行,我如何确保(我猜是使用 tcpdump)所有传入的请求都被 gzipped 并且所有响应也被 gzip 压缩?此外,由于服务器本身调用另一台服务器(Windows),我如何检查与该另一台服务器之间的传出和传入包(如果它们被压缩,我的意思是)?谢谢
tcpdump
单独这样做不是一个好方法,从技术上讲,您可以通过检查数据包来确定答案,但这不是最好的网络层。第一个问题是您需要处理可变的 HTTP 标头,第二个问题是对于 HTTP/1.1 和持久连接,您必须检查每个回复数据包,或者重新组装每个请求/响应。
HTTP请求都很少压缩。不过,检查请求头中是否存在“gzip”或“deflate”可能很有用Accept-Encoding:
。
HTTP 回复应Content-Encoding:
包含包含gzip
或deflate
使用压缩时的标头。
注意事项:
在 Apache 中,记录压缩使用的一种方法是使用mod_deflate
的DeflateFilterNote然后修改您的日志记录指令,我通常在自定义中至少使用以下内容LogFormat
:
%>s %B %I %O %D %{instream}n/%{outstream}n/%{ratio}n%% %{Content-Type}o
Run Code Online (Sandbox Code Playgroud)
它记录进出的总大小、压缩细节和 MIME 类型。
我曾经httpry
观察过 HTTP 请求,但它在这里不太适用,因为遗憾的是它缺少检查和记录响应标头的功能(它也不重新组装数据包或 HTTP 流)。
应该提供所需详细信息的两个程序是justsniffer
和xplico
(请注意,尽管我从未使用过它们,因为它们的依赖性使编译起来有点棘手,如果您可以为您的操作系统获取二进制包,那么您应该没问题)。
归档时间: |
|
查看次数: |
5191 次 |
最近记录: |