DEFLATE 출력필터를
제공한다.
급한 사람을 위한 견본 설정이다.
아래 설정은 요약하였지만 그래도 복잡하다. 설정을 완전히 이해한 후 사용하라.
DEFLATE 필터가
압축을 한다. 다음 지시어는 지시어가 있는 위치의 문서를
압축한다:
모든 내용을 압축하면 처리하지 못하는 브라우저가 있기때문에
html 파일만을 압축하기위해 (아래 참고)
gzip-only-text/html을 1로 설정할지도
모른다. 이를 1이 아닌 값으로 설정하면
무시한다.
보통 특별한 MIME type만 압축하려면
압축한 파일을 처리하지 못하는 브라우저에게는 압축하지않고
보내길위해 no-gzip을
설정한다. 최적의 결과를 얻기위해 no-gzip과
gzip-only-text/html을 같이 사용할 수 있다.
이 경우 전자가 후자를 무시한다. 위 절의 설정 예제 일부를 살펴보자:
먼저 User-Agent 문자열을 보고 Netscape
Navigator 버전 4.x인지 검사한다. 이 버전은 text/html이
아닌 type의 압축을 처리하지 못한다. 버전 4.06, 4.07, 4.08은
html 파일 압축을 처리하는대도 문제가 있다. 그래서 우리는
이 경우 deflate 필터를 완전히 사용하지않는다.
세번째 User-Agent 헤더에서 "MSIE"
(\b는 "단어 경계"를 뜻한다) 문자열을 발견하면
앞에서 설정한 제약을 푼다.
DEFLATE 필터는 항상 PHP나 SSI와 같은 RESOURCE
필터 뒤에 들어간다. 또, 내부 하위요청(subrequest)에 영향을
주지 않는다.
force-gzip 환경변수를 설정하면 브라우저의
accept-encoding 설정을 무시하고 압축된 결과를 보낸다.
INFLATE 필터를 추가한다.
이 예제는 example.com이 보낸 gzip으로 압축된 결과의 압축을 풀어서, 다른 필터가 더 처리할 수 있도록 한다.
DEFLATE 필터를
추가한다.
요청에 Content-Encoding: gzip 헤더가 있다면
자동으로 압축된 내용을 푼다. gzip 요청을 할 수 있는
브라우저는 드물다. 그러나 어떤 WebDAV 클라이언트와 같은
특별한 프로그램은 요청 압축을 지원한다.
요청 내용을 직접 살펴본다면, Content-Length
헤더를 믿지마라! Content-Length 헤더는 클라이언트가
보낸 내용의 길이이지, 압축을 푼 결과의 바이트수가
아니다.
Accept-Encoding 요청 헤더를 보낸
클라이언트에게만 보내도록 Vary:
Accept-Encoding HTTP 응답 헤더를 추가한다. 그래서
압축된 내용을 이해할 수 없는 클라이언트에 압축된 내용을
보내지않도록 한다.
예를 들어, User-Agent 헤더 등에 따라 특별히
필터 적용을 취소한다면, 프록시에게 이러한 제한을 알려주기위해
직접 Vary 헤더에 추가해야 한다. 예를 들어,
설정이 User-Agent에 따라 DEFLATE
필터를 추가한다면 다음을 사용한다:
요청 헤더외의 다른 정보에 (예를 들어, HTTP 버전)
따라 압축 여부가 결정된다면, Vary 헤더값을
*로 설정해야 한다. 그러면 표준을 따르는 프록시는
캐쉬를 하지 않게 된다.
로그에서 더 정확한 값을 추출하려면 type 아규먼트로 기록할 자료를 선택한다. type는 다음중 하나이다:
InputOutputRatiooutput/input * 100) 저장한다.
type 아규먼트를 생략하면 사용하는 기본값이다.그래서 이렇게 로그에 기록할 수 있다:
(가장 덜 압축) 1과 (가장 많이 압축) 9 사이의 값을 지정한다.