일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 웹사이트 성능
- Push
- 웹사이트최적화기법
- notification
- gcm 푸시 번역
- php
- GCM
- Design Pattern
- 푸시 번역
- nginx설치
- 웹사이트성능
- JPA
- git
- 푸시
- 성능
- 카프카 트랜잭션
- nginx
- graphql
- Java
- kafka
- 자바스크립트
- 카프카
- nginx설정
- 디자인패턴
- APNS
- GCM 번역
- 페이스북 번역
- 도메인 주도 개발
- ddd
- Today
- Total
간단한 개발관련 내용
[웹사이트최적화기법][Chapter04] 규칙4 : Gzip 컴포넌트. 본문
Chapter04 Gzip 컴포넌트.
이번 장에서는 gzip 인코딩을 이용해서 HTTP 응답을 압축하여 응답의 크기를 줄여 속도를 개선하는 방법을 보여준다.
1. 압축을 적용하는 방법.
HTTP/1.1 에서부터 웹 클라이언트는 HTTP 요청의 Accept-Encoding 헤더를 이용해 압축의 지원 여부를 보내주게 된다. 웹 서버는 응답 헤더 안의 Content-Encoding 속성을 통하여 웹 클라이언트에게 사용된 압축 방식을 알려준다. gzip 과 deflate 포맷을 사용할 수 있는데 주로 gzip을 사용한다.
2. 무엇을 압축해야 하는가?
Gzip은 HTML문서, 스크립트와 스타일시트를 압축할 수 있지만 이미지와 PDF는 이미 압축된 파일이기 때문에 gzip 압축을 적용해서는 안 된다. 일반적으로 gzip은 1~2KB 보다 큰 파일일 경우에 적용해 볼 만한 가치가 있다.
3. 압축률.
gzip이 적용된 파일은 일반적으로 약 70% 정도의 압축 효과를 가지며 deflate 보다 평균적으로 높은 압축률을 가지고 있다.
4. 설정.
gzip 설정은 Apache 버전에 따라 다른데 Apache 1.3 에서는 mod_gzip 이라는 모듈이 제공되고 있고, Apache 2.x 에서는 mod_deflate 모듈을 사용한다. 자세한 내용은 Apache 문서를 참고 할 것.!
5. 프록시 캐싱.
프록시가 캐시에 압축된 정보를 가지고 있고 브라우저의 압축 지원 여부에 상관없이 압축된 버전의 콘텐츠를 전달하게 될 경우에 문제가 발생하는데 이럴 경우에는 서버의 헤더에 Vary: Accept-Encoding을 추가한다.
6. 예외적인 경우.
브라우저가 지원하지 않을 경우를 고려하여 안전성이 보장된 브라우저에만 압축을 전달해야 하는데 이런 접근 방식을 Browser Whitelist 라고 한다. Apache 설정을 통하여 User-Agent 에 대해 화이트리스트 설정을 할 수 있다. 이러한 설정들은 각 사이트의 상황에 맞추어 내려져야 한다.
7. Gzip 의 효과.
스크립트와 스타일시트도 gzip 압축을 하자.