Поделиться через


Формат журналов ошибок API HTTP-сервера

Как правило, файлы журналов ошибок API HTTP-сервера имеют тот же формат, что и журналы ошибок W3C, за исключением того, что файлы журналов ошибок API HTTP-сервера не содержат заголовков столбцов. В каждой строке журнала ошибок API HTTP-сервера регистрируется одна ошибка с полями в определенном порядке. Каждое поле отделяется от предыдущего поля одним пробелом (0x0020). В каждом поле символы пробела, табуляции и непечатаемые управляющие символы заменяются знаками "плюс" (0x002B).

В следующей таблице указаны поля и порядок полей в записи журнала ошибок.

Поле Описание
Дата
Поле Date соответствует формату W3C и основано на формате UTC. Поле Дата всегда содержит 10 символов в формате ГГГГ-ММ-ДД. Например, 1 мая 2003 года выражается как "2003-05-01".
Время
Поле Время соответствует формату W3C и основано на формате UTC. Поле времени всегда содержит 8 символов в формате "ММ:ЧЧ:СС". Например, 17:30 (UTC) выражается как "17:30:00".
IP-адрес клиента
IP-адрес затронутого клиента, который может быть IPv4-адресом или IPv6-адресом. Если IP-адрес клиента является IPv6-адресом, в адрес также включается поле ScopeId.
Порт клиента
Номер порта для затронутого клиента.
IP-адрес сервера
IP-адрес затронутого сервера, который может быть IPv4-адресом или IPv6-адресом. Если IP-адрес сервера является IPv6-адресом, в адрес также включается поле ScopeId.
Порт сервера
Номер порта затронутого сервера.
Версия протокола
Версия используемого протокола.
  • Если подключение не проанализировано достаточно для определения версии протокола, в качестве заполнителя для пустого поля используется дефис (0x002D).
  • Если основной или дополнительный номер версии, проанализированный, больше или равен 10, версия регистрируется как "HTTP/?.?".
Глагол
Состояние глагола, переданное последним проанализированным запросом. Включены неизвестные глаголы, но любая глагола, размер которой превышает 255 байт, усекается до этой длины. Если команда недоступна, дефис (0x002D) используется в качестве заполнителя для пустого поля.
CookedURL + Query
URL-адрес и все связанные с ним запросы регистрируются как одно поле, разделенное вопросительным знаком (0x3F). Это поле усекается с ограничением длины в 4096 байт.
  • Если этот URL-адрес был проанализирован ("подготовлен"), он регистрируется с преобразованием локальной кодовой страницы и обрабатывается как поле Юникода.
  • Если этот URL-адрес не был проанализирован ("подготовлен") во время ведения журнала, он копируется точно, без какого-либо преобразования в Юникод.
  • Если API HTTP-сервера не может проанализировать этот URL-адрес, в качестве заполнителя для пустого поля используется дефис (0x002D).

Состояние протокола
Состояние протокола не может превышать 999.
  • Если состояние протокола ответа на запрос доступно, оно регистрируется в этом поле.
  • Если состояние протокола недоступно, в качестве заполнителя для пустого поля используется дефис (0x002D).
SiteId
Не используется в этой версии API HTTP-сервера. В этом поле всегда отображается дефис заполнителя (0x002D).
Фраза причины
Это поле содержит строку, определяющую тип ошибки, которая регистрируется. Он никогда не остается пустым.

Ниже приведены примеры строк из журнала ошибок API HTTP-сервера:

2002-07-05 18:45:09 172.31.77.6 2094 172.31.77.6 80 
                    HTTP/1.1 GET /qos/1kbfile.txt 503 - ConnLimit
2002-07-05 19:51:59 127.0.0.1 2780 127.0.0.1 80 
                    HTTP/1.1 GET /ThisIsMyUrl.htm 400 - Hostname
2002-07-05 19:53:00 127.0.0.1 2894 127.0.0.1 80 
                    HTTP/2.0 GET / 505 - Version_N/S
2002-07-05 20:06:01 172.31.77.6 64388 127.0.0.1 80 
                    - - - - - Timer_MinBytesPerSecond