为什么 Apache 会对同一个 url 记录不同的响应大小?

为什么 Apache 会对同一个 url 记录不同的响应大小?

我注意到几个(表面上)无害的日志条目,并且——我承认我有点想太多了——对 Apache2 的响应大小感到好奇。

这个乌克兰爬虫† 攻击了我的网络守护进程,两秒钟后请求重复。Apache2 回复了 41,298 字节,然后回复了 41,244 字节。

我的问题是:
为什么响应大小不同--仅 54 个字节——针对同一个 URL 吗?

我没有自定义 Apache 的默认缓存声明。如果出现问题缓存后,我预计请求的内容会有接近 100% 的差异(或者至少超过 0.01%)。

我所能想到的只是一个小文件 - 一个微小的 GIF 或 .css 文件? - 莫名其妙地它是唯一被缓存的组件,但是搜索该大小的文件却没有结果:

find . -type f -size -55c -size +53c

...搜索 53 或 55 会找到小的 .GIF 文件,而扩展几个字节会得到更多。扩展这个假设猜测,“丢失”的响应数据可能是一个文件其各自的路径——但这似乎与我所认为的缓存工作方式相反。

我在这里看到了什么?


辅助
它们是仅有的两个条目:

# grep -r 46.119.77.28 /var/log
/var/log/apache2/example.com-access.log:46.119.77.28 - - [26/Apr/2020:19:56:20 -0600] "GET / HTTP/1.0" 200 41298 "http://www.example.com/" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36 OPR/54.0.2952.64 (Edition Yx)"
/var/log/apache2/example.com-access.log:46.119.77.28 - - [26/Apr/2020:19:56:22 -0600] "GET / HTTP/1.0" 200 41244 "http://www.example.com/" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36 OPR/54.0.2952.64 (Edition Yx)"

† 大约九个小时前,它攻击了我的另一台服务器,不久之后又攻击了另一台。虽然它没有主动寻找漏洞,但它显然在抓取网络,所以我出于原则屏蔽了它——它不需要立即或计划在美国以外地区编入索引。

答案1

尝试wiresharktcpdump捕获网络流量。应该很容易查看两个响应并找出差异。

这可能是响应标头略有变化。一些标头会随着客户端和时间而变化。

相关内容