Назад | Перейти на главную страницу

Почему Apache регистрирует разные размеры ответов для одного и того же URL-адреса?

Я заметил пару (якобы -) безобидных записей в журнале, и - надо признать, я сильно над этим задумываюсь - мне стало любопытно узнать о размерах ответов Apache2.

Этот украинский краулер † поразил моего веб-демона, через две секунды запросив дубликат. Apache2 ответил 41298 байтами, а затем 41244 байтами.

У меня вопрос:
Почему размеры ответов разные -всего на 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)"

† Примерно девятью часами ранее он поразил один из моих других серверов, а вскоре после этого - еще один. Хотя он не занимается активным поиском уязвимостей, он явно сканирует Интернет, поэтому я заблокировал его из принципа - нет необходимости в немедленном или запланированном индексировании за пределами США.

Пытаться wireshark или tcpdump для захвата сетевого трафика. Должно быть достаточно легко посмотреть на оба ответа и найти разницу.

Возможно, заголовки ответа немного изменились. Некоторые заголовки меняются в зависимости от клиентов и времени.