Apache를 사용하여 하나의 HTTP 헤더가 여러 번 발생하는 것을 기록합니다.

Apache를 사용하여 하나의 HTTP 헤더가 여러 번 발생하는 것을 기록합니다.

와 함께mod_log지시문을 사용하여 access.log 파일에 클라이언트로 다시 전송된 헤더를 기록할 수 있습니다 %{Set-Cookie}o. 하지만 만약 있다면여러 번 발생동일한 헤더의HTTP RPC에 의해 승인됨,하나만 기록됩니다.

우리는 어떻게 가질 수 있습니까?그들 모두로그인 ?

참고로 RFC에는 다음과 같이 명시되어 있습니다.

동일한 필드 이름을 가진 여러 메시지 헤더 필드는 해당 헤더 필드의 전체 필드 값이 쉼표로 구분된 목록[즉, #(값)]으로 정의된 경우에만 메시지에 존재할 수 있습니다.

Set-Cookie필드 값이 쉼표로 구분되어 있으므로 이러한 필드 이름입니다. HTTP RPC에서 제안한 대로 이들을 함께 결합하는 것은 괜찮습니다.

답변1

어떤 아파치 버전인가요? mod_log의 버전은 무엇입니까? 정답은 아파치에 버그 보고서를 제출하거나 직접 패치하는 것입니다.

답변2

실제로 버전 2.0부터 다음을 제외하고는 기본적으로 작동합니다 Content-type. 모든 헤더는 HTTP RFC에서 제안한 대로 쉼표로 잘 연결됩니다.

log_header_out"Set-Cookie" 응답 헤더도 다음 함수 에서 볼 수 있듯이 특별하게 처리됩니다 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 ...

관련 정보