Apache модуль · 12 min read · Sep 13, 2025

mod_gzip - обслуживание сжатого контента веб-сервером Apache - Страница 7

Автор: Майкл Шрёпл

Этот документ описывает набор всех кодов состояния, созданных mod_gzip 1.3.26.1a, касающихся его обработки и предоставляемых через поле описания %{mod_gzip_result}n для использования внутри форматов журналов.

DECLINED:UNHANDLED_SUBREQ

источникзначение
mod_gzip_type_checkerЭто внутренний частичный запрос Apache, вызванный обработкой другого ‘нормального’ запроса. Только окончательный результат этого нормального запроса будет проверен (и, возможно, сжат) mod_gzip.

DECLINED:UNHANDLED_REDIR

источникзначение
mod_gzip_type_checkerЭто внутреннее перенаправление Apache, вызванное обработкой другого ‘нормального’ запроса. Только окончательный результат этого нормального запроса будет проверен (и, возможно, сжат) mod_gzip.

DECLINED:INIT1

источникзначение
mod_gzip_type_checkerЭто, похоже, установка значения в качестве инициализации - по крайней мере, это не имеет немедленного эффекта на порядок обработки.

DECLINED:STATIC_GZ_FOUND

источникзначение
mod_gzip_type_checkerДля запрашиваемого файла была найдена статически сжатая версия (с жестко закодированным расширением имени файла .gz) и могла быть доставлена UserAgent, вместо динамического сжатия оригинального файла.
mod_gzip_handler

DECLINED:FEXT_GZ

источникзначение
mod_gzip_type_checkerЗапрос явно ссылается на статически сжатый файл (с жестко закодированным расширением имени файла .gz); содержимое таких файлов доставляется без изменений.
mod_gzip_handler

DECLINED:NO_DCONF

источникзначение
mod_gzip_type_checkerУказатель dconf равен NULL. mod_gzip не может найти свою запись конфигурации и, следовательно, не имеет шансов проверить настройки своих директив конфигурации.

DECLINED:OFF

источникзначение
mod_gzip_type_checkerРежим сжатия не был включен для области определения этого файла ( mod_gzip_on No для полной конфигурации Apache, этого виртуального хоста, этой директории или этого файла .htaccess )

DECLINED:NOT_GET_OR_POST

источникзначение
mod_gzip_type_checkerЭтот запрос не использует один из методов HTTP GET или POST, но только данные этих методов могут быть разумно сжаты.

DECLINED:HEAD_REQUEST

источникзначение
mod_gzip_type_checkerЭтот запрос использует метод HTTP HEAD; такой запрос не вызывает создание (сжимаемого) содержимого документа, а только создание (несжимаемых) HTTP заголовков.

DECLINED:HTTP_LEVEL_TOO_LOW

источникзначение
mod_gzip_type_checkerЭтот запрос использует версию протокола HTTP, которая не так высока, как минимум требуется директивой mod_gzip_min_http.

DECLINED:NO_GZIP

источникзначение
mod_gzip_type_checkerЭтот запрос содержит заголовок Accept-Encoding, но его список кодировок (которые поддерживаются этим UserAgent) не содержит кодировку gzip - очевидно, этот UserAgent не понимает данные, сжатые с помощью gzip.

DECLINED:NO_ACCEPT_ENCODING

источникзначение
mod_gzip_type_checkerЭтот запрос не содержит заголовка Accept-Encoding - очевидно, этот UserAgent не понимает данные, сжатые с помощью gzip.

DECLINED:NO_ITEMS_DEFINED

источникзначение
mod_gzip_type_checkerСписок правил (для определения, следует ли сжимать содержимое запрашиваемого файла) пуст (ни mod_gzip_include_item, ни mod_gzip_exclude_item не были использованы). Поэтому обычный процесс принятия решения не применим.

DECLINED:REQ_HEADER_FIELD_EXCLUDED

источникзначение

| mod_gzip_type_checker | Этот запрос был исключен из сжатия во время анализа правил фильтра ( mod_gzip_validate1 (header_name, header_value, MOD_GZIP_REQUEST), строка 2511).
(Это должно было быть правило типа mod_gzip_exclude_item reqheader - это не могло быть вызвано отсутствием правила mod_gzip_include_item, так как другие тесты должны следовать.) |

DECLINED:EXCLUDED

источникзначение

| mod_gzip_type_checker | Этот запрос был исключен из сжатия во время анализа правил фильтра ( mod_gzip_validate1 (file, uri, content_type, handler), строка 2612), после того как поля заголовков HTTP запроса уже были проверены на соответствие правилам mod_gzip_exclude_item.
(Не очень осмысленно, какая жалость … если бы нам хотя бы сказали, сработало ли явное правило mod_gzip_exclude_item - и из какого класса - или просто не было найдено ни одного правила mod_gzip_include_item … !) |

COMMAND:VERSION

источникзначение

| mod_gzip_do_command | Этот запрос вызвал выполнение команды отображения статуса mod_gzip, определенной директивой mod_gzip_command_version (номер версии и ‘ on ‘/‘ off ‘).
Вывод этой команды настолько короткий (менее 100 байт), что нет смысла сжимать содержимое. |

DECLINED:INVALID_COMMAND

источникзначение

| mod_gzip_do_command | Что-то должно было сломаться во время выполнения внутренней команды статуса.
(Я не уверен, произойдет ли этот случай когда-либо.) |

INIT2

источникзначение
mod_gzip_handlerЭто, похоже, установка значения в качестве инициализации - по крайней мере, это не имеет немедленного эффекта на порядок обработки.

DECLINED:OFF2

источникзначение
mod_gzip_handlerРежим сжатия не был включен для области определения этого файла ( mod_gzip_on No для полной конфигурации Apache, этого виртуального хоста, этой директории или этого файла .htaccess )

DECLINED:EXCLUDED_BY_HANDLER

источникзначение

| mod_gzip_handler | Этот запрос был исключен из сжатия во время анализа правил фильтра ( mod_gzip_validate1 (file, uri, content_type, handler), строка 3091), после того как поля заголовков HTTP запроса уже были проверены на соответствие правилам mod_gzip_exclude_item.
(Не очень осмысленно, какая жалость … более того, я не знаю, почему это должно было быть обработчиком, вызывающим исключение, так как эти четыре значения параметров также были переданы в mod_gzip_validate1.) |

RECOVERY

источникзначение
mod_gzip_handlerЧто-то должно было пойти не так во время выполнения mod_gzip_redir1_handler… но что? Нам придется сделать даже внутреннее перенаправление, не знаю, почему … и в строке 3310 мы даже перезапишем наш собственный код состояния кодом этого подзапроса.

DECLINED:DYN1_OPENFAIL_BODY

источникзначение

| mod_gzip_redir1_handler | mod_gzip_dyn1_getfdo1 пытался создать новый файл, но не смог.
(Этот доступ в конечном итоге приведет к HTTP_INTERNAL_SERVER_ERROR - мы не получим приемлемый результат … но почему? Разве мы не можем просто прервать и ОТКЛОНИТЬ этот запрос на сжатие? И тогда я хотел бы получить более подробную информацию о том, что пошло не так здесь … почему это не выражается каким-либо кодом состояния?) |

STAT_FAILED

источникзначение
mod_gzip_sendfile2Файл, который должен быть отправлен, не существует. ( stat() код возврата != 0); это кажется одним из тех “это не может произойти” событий.

CAP_FILE_EMPTY

источникзначение
mod_gzip_sendfile2У нас есть файл для отправки (вызов stat() сработал), но его размер меньше 1 байта. Содержимое документа, которое должно быть сжато, кажется, каким-то образом исчезло, почему бы и нет.

CAP_FOPEN_FAILED

источникзначение
mod_gzip_sendfile2У нас есть файл для отправки (вызов stat() сработал), но попытка открыть его для чтения ( fopen(name,”rb”)) не удалась.

NO_HTTP_EOH

источникзначение

| mod_gzip_sendfile2 | HTTP заголовок результата, созданного во время обработки текущего запроса, не был корректно завершен. (Во время разбора HTTP заголовков мы должны были найти пустую строку на строке 5957.)
Мы не можем обработать такой заголовок (нам пришлось бы частично переписать его для сжатия содержимого). |

NO_HTTP_RESP_CODE

источникзначение

| mod_gzip_sendfile2 | HTTP заголовок результата, созданного во время обработки текущего запроса, не содержит кода состояния. (В первой строке HTTP заголовка мы должны были найти HTTP код состояния, в строке 5983.)
Но чуть позже нам придется проверить именно этот код состояния - это не сработает сейчас, точно |

SEND_AS_IS:NO_200

источникзначение

| mod_gzip_sendfile2 | HTTP код состояния созданного ответа не имеет значения 200 - и только для этого значения у нас может быть какое-то сжимаемое содержимое документа.
(Эм … а что насчет всех этих документов об ошибках 404?) |

SEND_AS_IS:RESPONSE_FIELD_EXCLUDED

источникзначение

| mod_gzip_sendfile2 | Этот запрос был исключен из сжатия во время анализа правил фильтра ( mod_gzip_validate1 (header_name, header_value, MOD_GZIP_RESPONSE), строка 6081).
(Это теперь очевидно был HTTP заголовок созданного результата, так как остальное не было проверено прямо сейчас. Для DECLINED уже слишком поздно, это, похоже, имеет смысл только до обработки оригинального запроса … ?) |

SEND_AS_IS:NO_BODY

источникзначение
mod_gzip_sendfile2У нас есть содержимое с приемлемым HTTP заголовком, но размер этого содержимого меньше одного байта. Просто нечего сжимать. (Например, вы получаете этот статус, если запрашивается файл с содержимым 0 байт, например, пустой robots.txt файл и т.д.)

SEND_AS_IS:UNKNOWN_TE_VALUE

источникзначение
mod_gzip_sendfile2HTTP заголовки результата запроса содержат Transfer-Encoding, который не является типом chunked, который был бы единственным, который мы могли бы обработать (объединив chunks в один пакет, а затем сжав его).

SEND_AS_IS:HAS_CE

источникзначение
mod_gzip_sendfile2HTTP заголовки результата запроса содержат Content-Encoding. В теории можно было бы каскадировать несколько Content-Encodings в HTTP; практический опыт показывает, что ни один из доступных UserAgents не может обрабатывать это правильно. Поэтому лучше оставить содержимое без изменений.

SEND_AS_IS:NO_CONTENT_TYPE_IN_RESPONSE_HEADER

источникзначение

| mod_gzip_sendfile2 | HTTP заголовок результата запроса не содержит Content-Type. (Во время разбора HTTP заголовков мы должны были найти Content-type в строке 6034.)
Но Content-type не является обязательным заголовком, согласно HTTP; на самом деле UserAgent может даже угадать Content-type если ни один не был доставлен сервером. С другой стороны, самое важное правило include основано на этом Content-type, и если его нет, то будет сложно применить соответствующее правило …
Я лично исключил именно этот тест из mod_gzip, так как я получаю страницы без Content-type через mod_proxy от M$/IIS (но я знаю, что это должно быть text/html), которые я хочу переслать в сжатом виде … |

SEND_AS_IS:RESPONSE_CONTENT_TYPE_EXCLUDED

источникзначение
mod_gzip_sendfile2Запрос был исключен из сжатия во время анализа правил фильтра ( mod_gzip_validate1 (CONTENT_TYPE), строка 6307).

SEND_AS_IS:DECHUNK_OPTION_IS_OFF

источникзначение
mod_gzip_sendfile2Transfer-Encoding: chunked был обнаружен, но в конфигурации mod_gzip не было разрешено удалить это кодирование (т.е. собрать все chunks и объединить их в один пакет, содержимое которого затем могло бы быть сжато). Директива mod_gzip_dechunk Yes позволила бы mod_gzip сжать этот запрос.

SEND_AS_IS:FOPEN_FAILED

источникзначение

| mod_gzip_sendfile2 | Мы собирались начать сжатие. Для этого было необходимо открыть временный файл, имя которого мы ранее вычислили с помощью mod_gzip_create_unique_filename. Но попытка открыть (записать) этот файл не удалась - поэтому попытка сжать данные завершена.
Это может особенно быть случаем, если mod_gzip только что пытался обновить устаревшее содержимое статически предсжатого файла, но не имел прав на запись в этот файл. |

SEND_AS_IS:FSEEK_FAILED

источникзначение

| mod_gzip_sendfile2 | Мы собирались начать сжатие. После успешного открытия входного файла мы попытались позиционировать внутри этого файла на начальную позицию с помощью fseek (ifh,0,0) - но это не удалось.
(Я еще не уверен, почему на этом этапе уже решено, что данные должны быть прочитаны из файла, а не из какого-то буфера Apache … мы еще не в режиме де-чанкинга?) |

SEND_AS_IS:BODY_MISSING

источникзначение
mod_gzip_sendfile2Во время предыдущего копирования содержимого файла, которое должно быть сжато, было обнаружено, что содержимое этого файла состоит из 0 байт - поэтому нет смысла сжимать что-либо.

SEND_AS_IS:WORK_OPENFAIL

источникзначение
mod_gzip_open_output_fileПопытка повторно открыть (прочитать) выходной файл, который был создан ранее во время сжатия содержимого (для отправки этих данных сейчас), не удалась.

OK / DECHUNK:OK

источникзначение
mod_gzip_encode_and_transmitСжатие было успешно завершено. (Это значение устанавливается как значение по умолчанию в начале операции и перезаписывается в случае ошибки.)

DECLINED:NO_ILEN / DECHUNK:DECLINED:NO_ILEN

источникзначение
mod_gzip_encode_and_transmitРазмер содержимого, которое должно быть сжато, меньше одного символа - нечего делать.

DECLINED:TOO_SMALL / DECHUNK:DECLINED:TOO_SMALL

источникзначение
mod_gzip_encode_and_transmitРазмер сжатого содержимого меньше значения, определенного директивой mod_gzip_minimum_file_size.

DECLINED:TOO_BIG / DECHUNK:DECLINED:TOO_BIG

источникзначение
mod_gzip_encode_and_transmitРазмер сжатого содержимого больше значения, определенного директивой mod_gzip_maximum_file_size.

DECLINED:NO_OLEN / DECHUNK:DECLINED:NO_OLEN

источникзначение
mod_gzip_encode_and_transmitРазмер сжатого содержимого меньше одного символа - значит, что-то пошло не так во время сжатия.

DECLINED:ORIGINAL_SMALLER / DECHUNK:DECLINED:ORIGINAL_SMALLER

источникзначение
mod_gzip_encode_and_transmitРазмер сжатого содержимого меньше размера оригинального содержимого - значит, сжатие не привело к экономии. Поэтому будет предоставлено несжатое содержимое.

DECLINED:REOPEN_FAILED / DECHUNK:DECLINED:REOPEN_FAILED

источникзначение
mod_gzip_encode_and_transmitПопытка открыть (прочитать) выходной файл (который был создан ранее во время сжатия содержимого) для отправки этих данных не удалась.

TRANSMIT_ERROR:ISMEM:%d:%s / DECHUNK:TRANSMIT_ERROR:ISMEM:%d:%s

источникзначение
mod_gzip_encode_and_transmitОшибка при отправке сжатых данных из основной памяти (сообщение в режиме DEBUG)

TRANSMIT_ERROR:ISMEM:%d / DECHUNK:TRANSMIT_ERROR:ISMEM:%d

источникзначение
mod_gzip_encode_and_transmitОшибка при отправке сжатых данных из основной памяти

TRANSMIT_ERROR:%d / DECHUNK:TRANSMIT_ERROR:%d:%s

источникзначение
mod_gzip_encode_and_transmitОшибка при отправке сжатых данных из временного файла

TRANSMIT_ERROR:%d / DECHUNK:TRANSMIT_ERROR:%d

источникзначение
mod_gzip_encode_and_transmitОшибка при отправке сжатых данных из временного файла

SEND_AS_IS:PRECOMPRESSED_VARIANT_OUTDATED

источникзначение
mod_gzip_handler(новое в mod_gzip 1.3.19.2a) Содержимое статически предсжатого файла старше, чем у несжатого оригинального файла. Поэтому содержимое оригинального файла было предоставлено (в несжатой форме) - мы предпочитаем предоставлять корректные данные, чем устаревшие.

DECLINED:METHOD_EXCLUDED

источникзначение
mod_gzip_type_checker(новое в mod_gzip 1.3.19.2a) Запрос для этого URL был сделан с использованием метода HTTP, результаты которого не были объявлены как сжимаемые с помощью директивы mod_gzip_handle_methods.

DECLINED:POST_TOO_BIG

источникзначение
mod_gzip_type_checker(новое в mod_gzip 1.3.26.1a) Длина содержимого HTTP POST запроса больше доступного буфера и не может быть корректно обработана mod_gzip - это проблема, специфичная для платформы Windows. Ответ на этот запрос будет предоставлен в несжатой форме.

OK:PRECOMPRESSED_VARIANT_UPDATED

источникзначение

| mod_gzip_compress_file | (новое в mod_gzip 1.3.26.1a) При обслуживании содержимого статически предсжатого файла было замечено, что их содержимое было старше, чем у соответствующего оригинального файла. Содержимое предсжатого файла было успешно обновлено путем повторного сжатия оригинального содержимого; затем было предоставлено сжатое содержимое.

Оригинальное местоположение этого документа:

http://www.schroepl.net/projekte/mod_gzip/status.htm

Share: X/Twitter LinkedIn

Get new posts in your inbox

No spam. Unsubscribe anytime.