서버가 GZipped 콘텐츠를 제공하고 있는지 어떻게 알 수 있습니까?


160

NGinx 서버에 webapp가 있습니다. gzip onconf 파일을 설정 했는데 이제 작동하는지 확인하려고합니다. YSlow는 그렇지 않다고 말하지만 테스트를 수행하는 6 개 웹 사이트 중 5 개 사이트는 그렇지 않습니다. 이것에 대한 명확한 대답을 얻는 방법과 결과에 왜 차이가 있습니까?

답변:


229

하나의 가능한 대답은 의심 할 여지없이 다음과 curl같습니다.

$ curl http://example.com/ --silent --write-out "%{size_download}\n" --output /dev/null
31032
$ curl http://example.com/ --silent -H "Accept-Encoding: gzip,deflate" --write-out "%{size_download}\n" --output /dev/null
2553

두 번째 경우 클라이언트는 서버에게 컨텐츠 인코딩을 지원한다고 알려주고 응답이 실제로 짧고 압축되었음을 알 수 있습니다.


3
이것은 사실이지만 gzip은 특정 파일 형식을 압축하고 다른 파일 형식을 제외하도록 구성 할 수 있습니다. 따라서이 테스트를 사용하여 말리는 파일이 압축 될 유형인지 확인하십시오.
Tyler Biscoe

5
예를 들어 www가 아닌 ​​곳 에서 size_download의 결과로 잘못 되는 등 모든 리디렉션을 따르기 -L위해 플래그를 사용하는 것이 좋습니다.curlwww.
vladkras

젊은 개발자들에게 한 가지 인상을 줄 수 있다면, 유닉스 기반을 확고히하는 것이 중요합니다. CURL의 경우 +1 처음에는 혼란 스럽습니다. 알면 생명을 구할 수 있습니다.
Akron

105

최신 정보

Chrome에서보고 방식을 변경했습니다 (관심있는 경우 원래 답변 참조). 개발자 도구 (F12)를 사용하여 알 수 있습니다. 네트워크 탭으로 이동하여 검사하려는 파일을 선택한 다음 오른쪽의 헤더 탭을보십시오. zip으로 압축 한 경우 콘텐츠 인코딩에서 볼 수 있습니다.

이 예제에서 slider.jpg는 실제로 압축되어 있습니다.

여기에 이미지 설명을 입력하십시오

이 페이지와 비교하여 png 파일을 보면 그러한 지정이 표시되지 않습니다.

여기에 이미지 설명을 입력하십시오

분명히 하나는 jpg이고 다른 하나는 png이기 때문이 아닙니다. 하나는 압축되어 있고 다른 하나는 그렇지 않기 때문입니다.


이전 답변

Chrome에서 개발자 도구를 가져 와서 네트워크 탭으로 이동하면 압축이 없으면 다음이 표시됩니다.

여기에 이미지 설명을 입력하십시오

압축이있는 경우 다음을 수행하십시오.

여기에 이미지 설명을 입력하십시오

다시 말해, 위와 아래 같은 숫자는 압축이 없음을 의미합니다.


3
응답 헤더를 검사하는 것이 좋습니다. 이 방법은 gzip 압축의 사용 여부 또는 다른 압축 알고리즘을 말하지 않습니다.
사무엘

4
네트워크 탭의 Chrome 개발자 도구에서 요청에 대한 저작물 이름 / 링크를 클릭하면 응답 헤더를 검사 gzip하여 콘텐츠 인코딩 키를 확인할 수 있습니다! [screenshot] [1] [1] : i.stack .imgur.com / Bpb5W.png (http://content.screencast.com/users/…
d48

1
최신 크롬 버전 (버전 44.0.2403.130 m)은 크기 / 내용 세부 사항을 표시하지 않는 것 같습니다-나는 gzip 세부 사항을 의미합니다 -i.imgur.com/MTz7DCM.png . 왜 그 이유를 알고 있습니까?
Andy Dufresne

33

응답 헤더를 참조하십시오. FireFox에서는 Firebug로 확인할 수 있습니다.

Content-Encoding    gzip

서버가 gzip 컨텐츠를 지원하면 이것이 표시되어야합니다.


9
고객이 "Accept-Encoding : gzip, deflate"를 보낸 경우에만이 정보를 얻습니다
Maciej Swic

2
파일이 상태 304로 제공 될 때 원본 파일의 인코딩을 볼 수 있도록 강제로 새로 고침하면 캐시 된 버전이 이미 압축 해제 된 것 같습니다! (필자의 경우 콘텐츠 인코딩이 아닌 ETag 헤더가 표시됨)
ptim

11

새 버전의 크롬 인 개발자 도구> 네트워크에서 열 이름을 마우스 오른쪽 버튼으로 클릭하고 콘텐츠 인코딩 옵션을 선택하고 해당 열 (이미지의 블랙 박스)을 추가 할 수 있습니다.

해당 gzip 콘텐츠의 크기를 @Outfast Source로 보려면보기 옆의 아이콘을 클릭하면됩니다 (이미지에서 녹색 상자로 표시됨).

gzip이 활성화 된 콘텐츠를 확인할 수 있습니다.

여기에 이미지 설명을 입력하십시오


이것은 훌륭한 답변이지만 <kbd> 콘텐츠 인코딩 </ kbd>이 <kbd> 응답 헤더 </ kbd> 아래로 이동했습니다.
Dan Dascalescu


8

나는 zoul의 답변을 기반 으로이 스크립트를 작성했습니다.

#!/bin/bash

URL=$1
PLAIN="$(curl $URL --silent --write-out "%{size_download}\n" --output /dev/null)"
GZIPPED="$(curl $URL --silent -H "Accept-Encoding: gzip,deflate" --write-out "%{size_download}\n" --output /dev/null)"

if test $PLAIN -gt $GZIPPED
then echo "supported"
else echo "unsupported"
fi

예:

$ ./script.sh https://example.com/
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.