
Conmod_logpuede registrar los encabezados enviados al cliente en el archivo access.log con la %{Set-Cookie}o
directiva. Pero si haymúltiples ocurrenciasdel mismo encabezado, tal cualautorizado por el RPC HTTP,solo uno se registra.
¿Cómo podemos tenertodos ellosregistrado?
Como referencia, el RFC establece:
Múltiples campos de encabezado de mensaje con el mismo nombre de campo PUEDEN estar presentes en un mensaje si y sólo si el valor de campo completo para ese campo de encabezado se define como una lista separada por comas [es decir, #(valores)].
Set-Cookie
es dicho nombre de campo ya que el valor del campo está separado por comas. No me importaría unirlos como se sugiere en HTTP RPC.
Respuesta1
¿Qué versión de apache? ¿Qué versión de mod_log? La respuesta correcta puede ser presentar un informe de error con Apache o parchearlo usted mismo.
Respuesta2
En realidad, desde la versión 2.0, funciona de inmediato, excepto Content-type
: cada encabezado se concatena muy bien con una coma, como se sugiere en el RFC de HTTP.
El encabezado de respuesta "Set-Cookie" también tiene un tratamiento especial como podemos ver en la log_header_out
función 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 ...