gzip은 유닉스기반의 오픈소스 압축프로그램이다. deflate알고리즘을 사용하며 하나의 파일만 압축할 수 있으므로 주로 tar 프로그램과 함께 사용한다. 이런 불편함에도 gizp을 사용하는 이유는 웹사이트 성능 개선과 밀접한 관련이 있기 때문이다.
gzip은 텍스트파일을 압축하는데 최상의 성능을 낸다.
→ HTML, CSS, JSON 등 이미지를 제외한 대부분이 텍스트 content이다.
gzip 인코딩은 HTTP/1.1 명세에 포함되어 있으며 HTTP/1.1을 지원하는 대부분의 현 브라우저들은 gzip으로 압축된 콘텐츠를 사용 가능하다.
웹서버에 간단한 설정만으로도 적용이 가능하고 별다른 사이드 이펙트도 없기 때문에 gzip 적용은 효율적인 방법이다.
gzip 압축이 영향을 주는 구간은 웹서버 < - > 브라우저 사이의 네트워크 구간이기 때문에 프로그램의 실행 로직등에는 영향을 주지 않는다.
→ gzip 압축을 이용하면 사이트 트래픽의 대부분인 JS CSS HTML을 크게는 90% 가까이 압축이 가능하기 때문에 네트워크 대역폭 사용량을 크게 감소시킬 수 있다.
웹서버인 Apache, Nginx 에서 설정 가능하다.
WAS 인 Tomcat에서도 설정이 가능하다.
→ 일반적으로는 웹서버에서 설정을 하고 웹서버에서 설정적용이 어렵다면 WAS에서도 설정이 가능하다.