和mod_log您可以使用指令在 access.log 文件中记录发送回客户端的标头%{Set-Cookie}o
。但如果有多次出现相同的标题,原样通过 HTTP RPC 授权,只有一个被记录。
我们怎样才能他们全部已登錄?
作为参考,RFC 指出:
当且仅当该头字段的整个字段值定义为逗号分隔的列表 [即,#(values)] 时,消息中才可以存在具有相同字段名称的多个消息头字段。
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 ...