1

Я использую wget для создания резервной копии сайта, который работает локально на моем компьютере. Я использую команду:

wget -rkE http://localhost/mpmf/www/dev

Так что на самом деле это работает довольно хорошо, но вверху и внизу каждого файла есть несколько случайных символов. Например, первая строка index.html - это 4c11 а последняя - просто 0 . Похоже, что многие файлы заканчиваются на 0 но я не проверял каждый из них, чтобы убедиться, что это так.

Кажется, может быть какая-то причина, по которой это делает wget . Я подумал, что это может быть связано с рекурсивным просмотром сайта, но я не знаю. Так есть ли способ, которым я могу сделать это без этих дополнительных строк в моих файлах?

2 ответа2

1

Да, серверам разрешено отвечать на запросы HTTP/1.0 с помощью ответов HTTP/1.1, при условии, что они избегают функций, специфичных для HTTP/1.1 (таких как кодирование по частям).

Это не только верх и низ ваших файлов - по крайней мере, потенциально. Вы также можете обнаружить, что заголовки чанков попали в файл (что делает его довольно поврежденным).

Не зная деталей конфигурации вашего сервера, я не мог сказать, почему одна из ваших установок Apache/PHP игнорирует запрашивающую версию HTTP от wget, и одна уважает ее.

Тем не менее, я отмечу, что текущие источники разработки (которые, я думаю, в конечном итоге станут wget 1.12.1), включают поддержку запросов HTTP/1.1 и фрагментированного контента. Для него нет доступных пакетов deb, но если вы привыкли собирать из исходников, это вариант. Последний тестовый исходный пакет (из которого проще всего собрать, в противном случае вам нужно получить нечестивый набор предварительных условий) находится по адресу ftp://alpha.gnu.org/gnu/wget/wget-1.12-2460.tar.bz2 и был последнее обновление 16 марта.

1

Это маркеры фрагментов HTTP -кодирования передачи Chunked, как определено в RFC 2616. Это шестнадцатеричные числа, указывающие длину фрагмента, который следует.

Требуется поддержка кодирования по частям передачи в HTTP/1.1. Однако Wget только когда-либо делает запросы HTTP/1.0 - и кажется, что ваш веб-сервер игнорирует версию запроса и возвращает ответ HTTP/1.1 в нарушение RFC 2145.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .