문제

HTML 관련 파일 형식은 GZIP 압축, 서버 측을 사용하여 압축되어 있음을 알 수 있습니다. mod_gzip Apache 서버에서), 호환 브라우저에 의해 압축됩니다. ( "콘텐츠 인코딩")

이것은 HTML/XML 파일에만 작동합니까? 내 PHP/PERL 파일이 간단한 쉼표로 구분 된 데이터를 생성하고 브라우저로 보내면 기본적으로 인코딩 될까요?

Silverlight 또는 Flash와 같은 플랫폼은 이러한 데이터를 다운로드 할 때 브라우저/런타임에 의해 압축/압축 압축됩니까? 이것을 테스트 할 방법이 있습니까?

도움이 되었습니까?

해결책

이것은 HTML/XML 파일에만 작동합니까?

아니요 : 예를 들어 CSS 및 JS 파일에 자주 사용됩니다. 예를 들어, JS 프레임 워크 및 풀 -JS 응용 프로그램으로 인해 웹 사이트가 이미지를 제외하고 가장 큰 것 중 하나이므로 큰 이익을 나타냅니다!

실제로 모든 텍스트 기반 형식은 잘 압축 될 수 있습니다. (반대로, 이미지는 일반적으로 이미 압축되어 있으므로 이미지는 할 수 없습니다) ; 때때로, Ajax-requests에서 반환 된 JSON 데이터도 압축되어 있습니다. 텍스트 데이터입니다.

내 PHP/PERL 파일이 간단한 쉼표로 구분 된 데이터를 생성하고 브라우저로 보내면 기본적으로 인코딩 될까요?

구성의 문제입니다. 서버를 이러한 종류의 컨텐츠를 압축하도록 구성한 경우 압축 될 것입니다 :-)
(브라우저가 GZIP 인코딩 데이터를 허용한다고 말하면)


다음은 블로그에서 사용하는 Apache 2 (mod_deflate 사용) 구성 샘플입니다.

<IfModule mod_deflate.c>
    AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css text/javascript application/javascript application/x-javascript application/xml
</IfModule>

여기서는 HTML/XML/CSS/JS TE가 압축되기를 원합니다.

그리고 여기에도 같은 것이 있습니다. apache 1 (mod_gzip) 아래에서 한 번 사용한 몇 가지 구성 옵션이 있습니다.

<IfModule mod_gzip.c>
    mod_gzip_on                   Yes
    mod_gzip_can_negotiate        Yes

    mod_gzip_minimum_file_size    256
    mod_gzip_maximum_file_size    500000

    mod_gzip_dechunk              Yes

    mod_gzip_item_include         file       \.css$
    mod_gzip_item_include         file       \.html$
    mod_gzip_item_include         file       \.txt$
    mod_gzip_item_include         file       \.js$
    mod_gzip_item_include         mime       text/html

    mod_gzip_item_exclude         mime       ^image/
</IfModule>

여기서 눈에 띄는 것은 너무 작게 원하지 않는다는 것입니다 (게인이 중요하지 않음)가 너무 크거나 (압축하기에는 너무 많은 CPU를 먹을 것입니다) 파일을 압축 할 수 있습니다. 또한 CSS/HTML/TXT/JS 파일이 이미지가 아닌 압축되기를 원합니다.


쉼표로 구분 된 데이터가 동일한 방식으로 압축되기를 원한다면 컨텐츠 유형 또는 웹 서버 구성으로 확장하여 gzip-compression을 활성화해야합니다.

이것을 테스트 할 방법이 있습니까?

브라우저로 직접 반환되는 컨텐츠의 경우 Firefox의 확장자가 개똥 벌레 또는 LivehttPheaders 필수 아이템입니다.

브라우저의 표준 통신 방식을 거치지 않는 콘텐츠의 경우 더 어려울 수 있습니다. 결국, 당신은 다음과 같은 것을 사용해야 할 수도 있습니다. Wireshark 실제로 파이프를 통과하는 일을 "스니핑"하려면 ... 행운을 빕니다!

Silverlight 또는 Flash와 같은 플랫폼은 이러한 데이터를 다운로드 할 때 브라우저/런타임에 의해 압축/압축 압축됩니까?

Silverlight 및 Flash에 대한 귀하의 질문에 답하기 위해 압축 콘텐츠를 지원한다는 승인 헤더를 보내면 Apache는 mod_deflate 또는 mod_gzip을 사용합니다. 압축을 지원하지 않으면 헤더를 보내지 않습니다. 그것은“그냥 일할 것”입니다. - 네이트

다른 팁

아파치가 생각합니다 mod_deflate 보다 일반적입니다 mod_gzip, 그것이 내장되어 있고 똑같은 일을하기 때문에. 문서를보십시오 mod_deflate (위의 링크) MIME 유형을 기반으로 압축 할 파일 유형을 쉽게 지정할 수 있습니다. 일반적으로 HTML, CSS, XML 및 JavaScript를 압축 할 가치가 있습니다. 이미지는 이미 압축되어 있으므로 압축의 혜택을 얻지 못합니다.

브라우저는 이해하는 방법을 알고있는 압축 유형과 함께 "허용 인코딩"헤더를 보냅니다. 서버는 사용자 에이전트와 함께이를보고 결과를 인코딩하는 방법을 결정합니다. 일부 브라우저는 이해할 수있는 것에 대해 거짓말을하므로 헤더에서 "deflate"를 검색하는 것보다 더 복잡합니다.

기술적으로, 컨텐츠가 포함 된 모든 HTTP/2XX 응답은 유효한 컨텐츠 인코딩 (GZIP, Zlib, deflate 등)을 사용하여 컨텐츠로 인코딩 할 수 있지만 실제로는 실제로 더 크게 만들기 때문에 일반적인 이미지 유형에 압축을 적용하는 것이 낭비됩니다. .

동적 PHP 페이지에서 응답을 확실히 압축 할 수 있습니다. 가장 간단한 방법은 다음을 추가하는 것입니다.

<?php ob_start("ob_gzhandler"); ?>  

모든 PHP 페이지의 시작까지. 물론 PHP 구성을 통해 설정하는 것이 좋습니다.

쉽게 찾을 수있는 많은 테스트 페이지가 있습니다 Google:

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top