
С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 ...