2011-01-31 4 views
3

머리글이 없으면 머리글을 일시적으로 사용하지 않도록 설정하고 브라우저, 캐시 메커니즘 등에 미치는 영향을 완전히 알고 있음을 설명함으로써이 질문을 소개합니다.Apache에서 Content-Length 응답 헤더를 비활성화하는 방법은 무엇입니까?

Content-Length 헤더가 HTTP 응답에 없으면 일부 캐싱 동작을 테스트해야합니다. 헤더를 비활성화하는 방법이 있습니까?

첫 번째 시도는 PHP와 header("Content-Length: 0", true);을 사용하여 0으로 설정하려고했지만 응답에서 헤더를 완전히 삭제하는 것과 같지 않습니다.

헤더를 비활성화/제거 할 수 있습니까?

+1

다음으로 시도해보십시오. 헤더가 .htaccess 파일의 Content-Length가 설정되지 않았습니다. – Ivan

+1

.htaccess 파일 또는 httpd.conf와 함께 사용하면 작동하지 않는 것 같습니다. 헤더를 설정할 수는 있지만 Content-Length는 제거 할 수 없습니다. – Structure

+1

아파치 소스 코드를 해킹하여 Content-Length 헤더 생성을 제거 할 수 있습니다. 그것도 오픈 소스가 만든 것입니다 :) – SirDarius

답변

3

Content-Length를 추가하는 것은 RFC 2616 (HTTP 1.1)에 SHOULD로 표시되어 있습니다. 즉, 웹 서버는 일반적으로 그것을 버리지 않도록 설계되었습니다.

예를 들어 Apache HTTP Server의 경우/http/http_filters.c 모듈을 수정해야합니다. 원본 파일에서 Content-Length를 검색하면 실제로 파일을 강제로 해제하는 방법을 알 수 있습니다 (1255 줄을 자세히 살펴보십시오). 필터 체인의 끝에 unset을 추가하면 설정됩니다.

다른 대안은 아파치 외에도 다른 웹 서버를 사용하는 것입니다.이 웹 서버는 수정하기가 쉽거나 RFC 2616을 존중하지 않습니다.

+1

내 목표는 RFC가 존중되지 않을 때 어떻게되는지 확인하는 것입니다. 많은 일이 깨질 것이라고 기대합니다. 감사합니다. – Structure

관련 문제