
Commod_logvocê pode registrar os cabeçalhos enviados de volta ao cliente no arquivo access.log com a %{Set-Cookie}o
diretiva. Mas se houvermúltiplas ocorrênciasdo mesmo cabeçalho, como éautorizado pelo HTTP RPC,apenas um é logado.
Como podemos tertodos eleslogado?
Para referência, a RFC afirma:
Vários campos de cabeçalho de mensagem com o mesmo nome de campo PODEM estar presentes em uma mensagem se e somente se todo o valor do campo desse campo de cabeçalho for definido como uma lista separada por vírgula [ou seja, #(valores)].
Set-Cookie
é um nome de campo, pois o valor do campo é separado por vírgula. Eu não me importaria de uni-los conforme sugerido no HTTP RPC.
Responder1
Qual versão do apache? qual versão do mod_log? A resposta correta pode ser registrar um relatório de bug no Apache ou corrigi-lo você mesmo.
Responder2
Na verdade, desde a versão 2.0, ele funciona imediatamente, exceto Content-type
: cada cabeçalho é bem concatenado com uma vírgula, conforme sugerido no HTTP RFC.
O cabeçalho de resposta "Set-Cookie" também tem um tratamento especial como podemos ver na log_header_out
função de 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 ...