Регистрация нескольких случаев одного заголовка HTTP с помощью Apache

Регистрация нескольких случаев одного заголовка HTTP с помощью Apache

Сmod_logвы можете регистрировать заголовки, отправленные обратно клиенту в файле access.log с %{Set-Cookie}oдирективой. Но если естьмножественные появлениятого же заголовка, как иавторизовано HTTP RPC,только один регистрируется.

Как мы можем иметьвсе онизарегистрированы?

Для справки, в RFC указано:

Несколько полей заголовка сообщения с одинаковым именем МОГУТ присутствовать в сообщении, если и только если все значение поля для этого поля заголовка определено как список, разделенный запятыми [т.е. #(значения)].

Set-Cookieтакое имя-поля, поскольку значение-поля разделено запятыми. Я бы не возражал против объединения их вместе, как предлагается в HTTP RPC.

решение1

Какая версия apache? какая версия mod_log? Правильным ответом может быть либо отправить отчет об ошибке в apache, либо исправить ее самостоятельно.

решение2

На самом деле, начиная с версии 2.0, он работает «из коробки», за исключением Content-type: каждый заголовок аккуратно объединяется запятой, как предлагается в HTTP RFC.

Заголовок ответа «Set-Cookie» также имеет особую обработку, как мы видим в log_header_outфункции modules/loggers/mod_log_config.c:

// ... start of snippet ...
if (!strcasecmp(a, "Content-type") && r->content_type) {
    cp = ap_field_noparam(r->pool, r->content_type);
}
else if (!strcasecmp(a, "Set-Cookie")) {
    cp = find_multiple_headers(r->pool, r->headers_out, a);
}
else {
    cp = apr_table_get(r->headers_out, a);
}
// ... end of snippet ...

Связанный контент