使用mod_log,您可以使用%{Set-Cookie}o指令%{Set-Cookie}o日志头发送回access.log文件中的客户端。 但是,如果有相同标题的多个出现,就像HTTP RPC所授权的那样 , 只有一个被logging 。
我们怎么能把他们全部logging下来?
作为参考,RFC指出:
当且仅当该报头字段的整个字段值被定义为以逗号分隔的列表[即#(值)]时,具有相同字段名的多个消息报头字段可以存在于消息中。
Set-Cookie就是这样一个字段名称,因为字段值是用逗号分隔的。 我不介意按照HTTP RPC中的build议将它们连接在一起。
什么版本的Apache? 什么版本的mod_log? 正确的答案可能是用apache提交错误报告,或者自行修补。
实际上,从2.0版本开始,除了Content-type之外,它可以直接Content-type :每个头文件都可以很好地与HTTP RFC中build议的逗号连接起来。
我们可以在modules/loggers/mod_log_config.c的log_header_out函数中看到“Set-Cookie”响应头也有特殊的处理:
// ... 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 ...