PostList

2016년 8월 3일 수요일

웹페이지 GZIP Compression 적용 여부 확인 사이트


웹페이지 GZIP Compression 적용 여부 확인 사이트

웹서비스를 제공하시는 분들은 GZIP Compression 기능 제공을 통해 사용자에게 보다
빠른 환경을 제공 할 수 있습니다.
GZIP Compression 이란 말 그대로 웹페이지에 뿌려지는 데이터를 전송 할 때 GZIP 형식
으로 압축해서 전달 하겠다는 의미입니다. 웹서버에 GZIP Compression 기능이 활성화
되어 있으면 Client, 정확히는 브라우저 에서 웹페이지를 요청하는 HTTP Header 에
GZIP 으로 데이터를 달라고 요청하고, 웹서버는 GZIP 으로 압축해서 데이터를 전달
하게 됩니다.

사용되는 Header 는 Accept-Encoding, Contents-Encoding 입니다.
Accept-Encoding 은 Client 브라우저 에서 웹서버에 요청을 보낼 때 사용가능한 압축방식
을 전달 해주는 역할을 하고, Contents-Encoding 은 웹 서버가 Client 브라우저에 데이터를
전달할때 어떠한 형식으로 압축해서 전달했는지 알려주는 역할을 합니다.

본 포스팅에서 다루는 내용은 GZIP Compression 을 어떻게 적용하는지가 아니고,
적용이 제대로 되어 있는지, 압축 효율은 어느정도인지 확인하는 방법에 대한 내용 입니다.


[GZIP Compression 적용여부 확인 사이트]
사이트에 접속하면 사용방법은 매우 간단합니다. 아래 URL 에 접속한 뒤 웹페이지 주소를
입력하고, 돋보기 모양을 클릭하면 GZIP Compression 이 지원 되는지, 압축 효율은 어느
정도인지 결과가 바로 출력 됩니다.
google.com 을 테스트 해보려고 했는데 구글 메인페이지는 아시다시피 데이터가 별로
없고, 압축효율도 높지 않을 것 같아서 naver.com 으로 테스트 해보았습니다.

네이버 메인 페이지의 GZIP Compression 결과는 76.9% 로 확인 되었습니다.
매번 로딩되는 데이터의 사이즈가 다를 것이기 때문에 압축효율의 퍼센트는 달라 질 수
있지만 평균 70% 이상의 데이터를 압축해서 전달 하는 것으로 보입니다.
데이터를 압축해서 전달 하는 만큼 로딩 속도도 빠를 것이고, 많은양의 데이터를 출력
해야하는 페이지의 경우 GZIP 압축 기능을 활용하는 것이 좋겠습니다.

이와 반대로 적은양의 데이터를 출력해야 하는 페이지의 경우에는 GZIP 압축 기능을
사용하지 않는것이 더 좋습니다. 적은양의 데이터를 압축하게 되면 압축/해제 하는데
걸리는 시간이 압축하지 않은 데이터를 출력하는 시간보다 오래 걸릴 수 있기 때문입니다.
물론 체감 속도는 크지 않겠지만 무조건 사용하기 보다는 적절하게 활용하는것이 좋겠
습니다.

URL : http://checkgzipcompression.com/




여기까지는 일반적인 웹서비스의 가용성을 중점으로 다룬 내용입니다만 보안적인 측면
에서 GZIP Compression 은 이슈가 될 수 있습니다.

일반적인 Traffic 보안 솔루션은 방화벽, 웹에 특화된 보안 솔루션은 웹 방화벽을 사용
하는데 어플라이언스 웹 방화벽에서는 압축된 데이터를 열어 보지 않습니다.
장비마다 Default 설정이 다를 수는 있겠지만 일반적으로는 그렇습니다.

웹 방화벽에서 GZIP 데이터를 열어보기 위해서는 Client 에서 GZIP 으로 데이터를 달라고
서버에 전달 하더라도 중간에서 웹 방화벽이 GZIP 으로 보내지 말라고 바꾸어서 웹 서버에
전달 해야 합니다. 웹 서버 상단에는 바로 웹방화벽이 있을 것이기 때문에 웹 서버는 마지막
으로 전달 받은 내용, 'GZIP 으로 보내지 말라' 는 요청을 받아 압축하지 않은 상태로
Client 브라우저에 데이터를 전달 하게 됩니다.

그런데 데이터를 압축하지 않고 전달하게 되면 Client 입장에서는 체감속도가 느려질 수
밖에 없습니다. 보안을 강화하면 할 수록 가용성이 떨어 질 수 있기 때문에 이러한 상황
이 딜레마 입니다.

웹 방화벽의 처리량이 많거나 웹 서버에서 Client 에 전달하는 데이터가 너무 많은 경우
거기다 장비의 성능이슈까지 더해진다면 가용성에 우선순위를 둬야겠고, 사용자나
Traffic 이 많지 않은 사이트의 경우 보안에 우선순위를 두는 식으로 그때그때 상황에
맞게 설정하는게 정답 입니다.

웹방화벽을 신규로 설치해야 하는 경우 네트워크 환경, 사용량, 사용자수 와 같은 가시적인
데이터도 참고 해야하지만 이슈를 최소화 하기 위해서는 설정에 따른 변화도 충분히
검토 해야하고, 되도록 사전에 협의할 수 있는 부분은 협의하는게 좋습니다.

포스팅 내용이 업무나 공부에 도움이 되었으면 좋겠습니다.
감사합니다.

댓글 없음:

댓글 쓰기