gzip filter를 이용해 압축해서 사용자에게 보내기

2009/11/16 16:36
크리에이티브 커먼즈 라이선스
Creative Commons License
gzip ?
gzip은 리눅스나 유닉스 체제에서 사용하는 압축 방식인데 .. WEB에서 (사용자)브라우저에게 압축해 내용을 보내주는 것이다. HTTP HEADER에 '이건 gzip이야 .. 그러니 알아서 처리해줘!'하고 보내주면 브라우저가 분석해 gzip압축내용을 해제 후 사용자에게 보여준다.

사실 대부분의 브라우저들이 gzip을지원하고 있고 .. 지원한지도 오래되었지만 이제서야 직접 테스트해 봤다. 쌩자로 html을 만들어(서버사이드에서 연산된 후 사용자에게 보여질 때) 사용자에게 보여주는 경우가 일반적이지만 gzip의 압축을 통해 사용자에게 보내주면, 트래픽이 감소할 것이고 사용자는 보다 빠른 응답을 받을 수 있는 것이다.

필자가 보기엔 이거 .. *.js,*.css, *.html, *.htm같은 정적인 페이지만 영향이 있는줄 알았는데(정적페이지) *.jsp도 잘 된다. 본 테스트 데이터는 단순히 text기반의 정보이므로 당연히 무지막지한 압축율을 자랑한다. 그리고 이미지나 압축된 파일 등은 gzip으로 압축되지 않는다. 오직 text기반만 적용 된다. (블로그를 검색해 보니 60%정도 압축된다고 한다.)

gzip.html (정적 페이지 테스트)

코드보기


결과>
gzip필터 미사용(전송량 183KB)
 
 gzip사용(전송량 937B)

gzip.jsp (동적 페이지 테스트)

코드보기


 gzip 미사용(전송량 9.44MB)

gzip사용(전송량 33KB)

결과를 표로 보자면 ...
   gzip 미사용 gzip 사용
 .html 183KB
937B
 .jsp 9.44MB
 33KB



이제 효능을 확인했으니 적용 방법을 살펴보자. 라이브러리 추가 후 filter를 추가해 주면 된다. 물론 기존의 filter가 있다면 순서 등등의 문제가 이르킬수 있으니 순서정의를 잘 해야 한다.

web.xml


추가해야 할 라이브러리(왜 파일이 안올라가지 --)

commons-logging-1.1.1.jar
ehcache-1.3.0.jar

저작자 표시 비영리 변경 금지

Pupustory Dev/Java