Автор: Майкл Шрёпл
Этот документ описывает набор всех кодов состояния, созданных 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_sendfile2 | HTTP заголовки результата запроса содержат Transfer-Encoding, который не является типом chunked, который был бы единственным, который мы могли бы обработать (объединив chunks в один пакет, а затем сжав его). |
SEND_AS_IS:HAS_CE
| источник | значение |
|---|
| mod_gzip_sendfile2 | HTTP заголовки результата запроса содержат 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_sendfile2 | Transfer-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