고성능 WEB 개발(5)요청,응답 데이터 감소

4995 단어 요청 감소
GZIP 압축    gzip 는 현재 모든 브 라 우 저 에서 지원 하 는 압축 형식 입 니 다.IE6 는 SP1 이상 이 있어 야 지원 합 니 다.gzip 는 가장 편리 하고 응답 데 이 터 를 최대 로 줄 이 는 방법 이 라 고 할 수 있다.
편리 하 다 고 말 하 는 것 은 추가 코드 를 쓸 필요 가 없 기 때 문 입 니 다.http 서버 에 설정 만 추가 하면 됩 니 다.현재 주류 http 서버 는 gzip 을 지원 합 니 다.각종 서버 의 설정 은 일일이 소개 하지 않 습 니 다.
nginx 의 설정 은 제 글 을 참고 할 수 있 습 니 다www.blogjava.net/BearRui/archive/2010/01/29/web_performance_server.html
   gzip 의 압축 비율 이 얼마나 되 는 지 먼저 살 펴 보 겠 습 니 다.여 기 는 jquery 1.4.2 의 min 과 src 2 버 전 으로 테스트 합 니 다.nginx 서버 를 사용 하고 gzip 압축 단 계 는 4 를 사용 합 니 다.
   위의 그림 의 빨간색 부분 을 보 세 요.jquery src 파일 은 gzip 을 사용 한 후 크기 가 70%줄 었 습 니 다.   
   이 사진 은 min.js 가 압축 되 었 더 라 도 gzip 을 사용 한 후에 크기 가 65%줄 었 음 을 알 수 있다.그림 에 gzip 을 사용 하지 마 십시오.
   gzip 의 강력 한 압축 능력 을 알 게 된 후에 서버 에 있 는 모든 파일 에 gzip 을 사용 하고 싶 습 니까?먼저 그림 에서 gzip 을 사용 하면 어떤 상황 인지 보 여 줍 니 다. 

     hoho,gif 그림 1 개가 gzip 압축 을 거 쳐 오히려 커 졌 다??이 는 그림 이 원래 압축 형식 이기 때문에 gzip 는 더 이상 압축 할 수 없고 오히려 머리 정 보 를 추가 할 수 있 기 때문에 그림 이 커진다.
테스트 과정 에서 jpg 의 그림 이 gzip 압축 을 거 친 후에 작 아 지 는 것 을 발 견 했 습 니 다.왠 지 그림 압축 방식 과 관련 이 있 을 수 있 습 니 다.그러나 압축 비율 도 비교적 작 기 때문에 jpg 라 도 gzip 압축 을 열지 않 는 것 을 권장 합 니 다.gzip 압축 을 사용 하기에 적합 한 파일 은 다음 과 같 습 니 다.
    1. javascript
    2. CSS
    3. HTML,xml
    4、plain text
쿠키 를 함부로 쓰 지 마 세 요.     현재 쿠키 를 사용 하지 않 는 사 이 트 는 거의 없습니다.그러나 쿠키 를 어떻게 사용 하 는 것 이 적당 합 니까?쿠키 는 몇 가지 중요 한 속성 이 있 습 니 다.path(경로),domain(도 메 인),expires(만 료 시간)입 니 다.브 라 우 저 는 이 세 가지 속성 에 따라 요청 을 보 낼 때 이 쿠키 를 가 져 가 야 하 는 지 여 부 를 판단 합 니 다.     쿠키 를 사용 하 는 가장 좋 은 방법 은 요청 한 자원 이 쿠키 가 필요 할 때 만 이 쿠키 를 가 져 오 는 것 입 니 다.다른 어떤 요청 도 쿠키 를 가지 고 있 지 않 습 니 다.그러나 사실 많은 사람들 이 쿠키 를 사용 할 때 습관 적 으로 path=/domain=domain.com 으로 설정 되 어 있 습 니 다.이러한 결 과 는 모든 요청 에 쿠키 를 가 져 옵 니 다.요청 한 그림(img.domain.com),정적 자원 서버(res.domain.com)라 도 쿠키 가 필요 없 는 자원 을 가 져 옵 니 다.브 라 우 저 는 쓸모없는 쿠키 를 가 져 옵 니 다.현실 의 열,블 로그 원(www.cnblogs.com)을 살 펴 보 자.
    먼저 블 로그 원 의 쿠키 가 어떻게 설정 되 어 있 는 지 보 세 요.다음은 fireforx 가 블 로그 원 쿠키 의 캡 처 를 보 는 것 입 니 다.
        cnblogs 는 모두 5 개의 쿠키 값 을 가지 고 있 으 며,모든 설정 은 path=/ domain=.cnblogs.com。쿠키 의 설정 을 알 게 된 후에 저 희 는 블 로그 원 홈 페이지 의 요 구 를 모니터링 하고 감 측 된 통계 정 보 는 다음 과 같 습 니 다.
   총 요청 수:39(그림 22 개,JS7 개,css 2 개).
   그 중에서 js,css,image 는 주로 3 개의 정적 자원 서버 에서 나온다.common.cnblogs.com,pic.cnblogs.com,static.cnblogs.com   그 중 1 개의 요청 사진(/upload/2010 05/2010 05140004349115.gif)의 요청 헤더:
Host static.cnblogs.com
User-Agent Mozilla/5.0 (Windows; U; Windows NT 5.2; en-US; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3 GTBDFff GTB7.0
Accept image/png,image/*;q=0.8,*/*;q=0.5
Accept-Language zh-cn,en-us;q=0.7,en;q=0.3
Accept-Encoding gzip,deflate
Accept-Charset ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive 115
Proxy-Connection keep-alive
Referer http://www.cnblogs.com/
Cookie __gads=ID=a15d7cb5c3413e56:T=1272278620:S=ALNI_MZNMr6_d_PCjgkJNJeEQXkmZ3bxTQ; __utma=226521935.1697566422.1272278366.1272278366.1272278366.1; __utmb=226521935.2.10.1272278366; __utmc=226521935; __utmz=226521935.1272278367.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none)
     우 리 는 banner 를 요청 하 는 것 을 발견 했다.job.gif 라 는 그림 을 찍 을 때 브 라 우 저 는 cnblogs.com 의 모든 쿠키 를 가 져 왔 습 니 다.(다른 그림 의 요청 은 똑 같 습 니 다)블 로그 원 에서 그림 을 처리 할 때 쿠키 를 사용 하지 않 아 도 될 것 같 습 니 다.아마도 당신 은 이 몇 개의 쿠키 의 크기 가 300 바이트 정도 라 고 생각 할 것 입 니 다.괜 찮 습 니 다.
    우 리 는 간단 한 계산 을 해서 블 로그 원 에 매일 50W 개의 PV(실제 상황 은 그 치지 않 을 것 입 니 다)가 있다 고 가정 합 니 다.매번 PV 는 대략 15 번 정적 자원 을 요청 합 니 다.15*500000*300/1024/1024=214 M 입 니 다.그 러 니까 이 몇 개의 쿠키 는 매일 블 로그 원 2G 의 대역 폭 을 소모 할 것 이다.물론 이런 간단 한 계산 방식 은 틀림없이 편차 가 있 을 것 이다.왜냐하면 우 리 는 아직 정적 자원 캐 시 를 고려 하지 않 았 기 때문이다.하지만 개인 적 으로 블 로그 원 이 쿠키 의 domain 을 www.cnblogs.com 으로 설정 하면 더 좋 을 것 같 습 니 다.
묘 용 204 상태    http 에서 200,404,500 상 태 는 모두 가 잘 알 고 있 지만 204 상 태 는 모두 가 사용 할 수 있 는 것 이 비교적 적 습 니 다.204 상 태 는 서버 가 클 라 이언 트 요청 을 성공 적 으로 처 리 했 지만 서버 가 내용 을 되 돌려 주지 않 았 다 는 것 을 말 합 니 다.204 는 HTTP 에서 데이터 양 이 가장 적은 응답 상태 이 고 204 의 응답 에는 body 가 없 으 며 Content-Length=0 이다.많은 사람들 이 ajax 를 사용 하여 서버 에 데 이 터 를 제출 하고 서버 가 돌아 오지 않 아 도 되 는 경우 서버 에서 다음 코드 를 사용 합 니 다:response.getWriter().print(").이것 은 빈 페이지 를 되 돌려 주 는 것 이 고 200 요청 입 니 다.그것 은 바디 가 있 고 Content-Length 는 0 이 아 닙 니 다.사실 이 럴 때 204 상태(response.setStatus(204)를 직접 되 돌 릴 수 있 습 니 다.204 일부 사이트 에서 분석 하 는 코드 에서 가장 많이 사용 되 는 것 은 클 라 이언 트 의 일부 정 보 를 서버 에 제출 하면 끝 납 니 다.구 글 홈 페이지 의 204 응답 을 보 여 주세요.구 글 홈 페이지 의 마지막 요청 은 204 상태 로 돌아 갑 니 다.그러나 이 요청 은 무엇 에 사용 되 었 는 지 알 수 없습니다.
[성명]전재 출처 를 밝 혀 주 십시오.http://www.blogjava.net/BearRui/。 상용 금지!

좋은 웹페이지 즐겨찾기