Public/주요 프로젝트

OZ 풀브라우징 G/W

quantapia 2011. 8. 7. 14:05

4. Gzip Component

Http 요청/응답 시간은 프론트엔드 개발자에 의해 크게 개선될 수 있다.
엔드유저의 네트웍 대역폭이나 인터넷 제공회선망 같은 것은 개발자가 어쩔수 있는 것은 아니다.
하지만, 실제 전송되는 데이타의 양을 줄임으로서 속도를 개선시킬 수는 있다.

Http1.1 에 추가된 해더인 Accept-Encoding 해더를 사용해 압축된 데이타를 전송할 수 있다.

Request 해더에 Accept-Encoding 해더를 붙여 보내면,

Accept-Encoding: gzip, deflate
서버는 나열된 압축방법 중에 하나로 컨텐츠를 엔코딩하고 Response 해더를 통해 클라이언트에 압축방식을 알려준다.

Content-Encoding: gzip
Gzip 이 가장 널리 쓰이는 방식이다.(RFC 1952.) Deflate 는 Gzip 에 비해 비효율적이고 널리 쓰이지도 않는다.

Gzip 은 Response 크기를 약 70프로 정도 줄여준다.(와우..) 그리고 현재 인터넷 트래픽의 90프로 정도가 이 기능을 제공하는 브라우저를 통해 이뤄지고 있다.
압축할때 서버자원이 소모되고 다시 클라이언트에서 압축을 풀때 클라이언트 자원이 소모되지만,
현재 인터넷 환경이 머신의 cpu 비용 보다는 네트웍 비용이 더 많이 든는 상태이므로(앞에서 언급했듯이) 시도해 볼 만한 것인듯 하다.
주의할 점은 이미지처럼 이미 압축된 컨텐츠에 대해서 gzip 처리를 하려고 해서는 안된다. 이미 이미지는 압축된 내용이므로 오히려 크기가 늘어난다. JSON 이나 XML 이 포함된 응답에서는 좋은 성능을 보인다.

본문에서는 아파치 사용시 예가있으므로 , iis6.0 사용시 gzip 사용법은 아래의 링크된 블로그를 참고해 보기 바란다.