1. gzip 소개
gzip은 GNU zip의 약자로 GNU 자유 소프트웨어 파일 압축 프로그램으로 gzip을 나타내는데 자주 사용됩니다. . 소프트웨어 작성자는 Jean-loup Gailly와 Mark Adler입니다. 1992년 10월 31일에 처음 공개되었습니다. 버전 번호는 0.1이며 현재 안정 버전은 1.2.4입니다.
Gzip은 주로 Unix 시스템에서 파일 압축에 사용됩니다. Linux에서는 접미사가 .gz인 파일을 자주 사용하며 해당 파일은 GZIP 형식입니다. 요즘에는 인터넷에서 사용되는 매우 일반적인 데이터 압축 형식, 즉 파일 형식이 되었습니다. 일반 텍스트 파일에 Gzip 압축을 적용하면 효과가 매우 뚜렷해집니다. GZIP 압축 후에는 파일 내용에 따라 페이지 크기가 원본 크기의 40% 이하가 될 수 있습니다.
HTTP 프로토콜을 통한 GZIP 인코딩은 WEB 애플리케이션의 성능을 향상시키는 데 사용되는 기술입니다. 웹 개발에서는 웹사이트의 트래픽을 줄이기 위해 페이지를 압축하는 데 gzip을 사용할 수 있습니다. 그러나 gzip을 사용하면 CPU 사용량이 많이 늘어나지는 않지만 몇 퍼센트 정도만 압축할 수 있습니다. 페이지가 30% 이상 증가하여 매우 비용 효율적입니다.
Apache의 Gzip 모듈을 사용하면 Gzip 압축 알고리즘을 사용하여 Apache 서버에서 게시한 웹 콘텐츠를 압축한 후 클라이언트 브라우저로 전송할 수 있습니다. . 이 압축은 실제로 네트워크를 통해 전송되는 바이트 수를 줄입니다(전송을 위한 네트워크 I/O 절약). 가장 확실한 이점은 웹 페이지 로딩 속도를 높일 수 있다는 것입니다.
웹페이지 로딩 속도를 높이는 이점은 자명합니다. 트래픽을 절약하고 사용자의 탐색 경험을 향상시키는 것 외에도 Gzip 및 검색인덱싱 엔진의 크롤러는 더 나은 관계를 갖습니다. 예를 들어 Google은 gzip 파일을 직접 읽어 일반적인 수동 크롤링보다 더 빠르게 웹페이지를 크롤링할 수 있습니다. Google 웹마스터 도구에서 sitemap.xml.gz가 사이트맵으로 직접 제출되는 것을 볼 수 있습니다.
그리고 이러한 이점은 정적 콘텐츠에만 국한되지 않습니다. PHP 동적 페이지 및 기타 동적으로 생성된 콘텐츠는Apache 압축 모듈과 기타 성능 조정 메커니즘 및 해당 서버 측을 사용하여 압축할 수 있습니다. 웹사이트 성능을 크게 향상시킬 수 있는 캐싱 규칙입니다. 따라서 Linux 서버에 배포된 PHP 프로그램의 경우 서버에서 지원하는 경우 Gzip 웹 압축을 활성화하는 것이 좋습니다.
2. 웹서버에서 HTTP 압축을 처리하는 과정은 다음과 같습니다.
1.웹 서버 브라우저에서 HTTP 요청을 받은 후 브라우저가 HTTP 압축(Accept-Encoding 정보)을 지원하는지 확인합니다.
2. 브라우저가 HTTP 압축을 지원하는 경우웹 서버 요청 파일의 접미사 이름을 확인합니다.
3. 요청 파일이 HTML, CSS 등의 정적 파일인 경우웹 서버가 확인합니다. 요청한 파일의 최신 버전이 압축 버퍼 디렉터리에 이미 있는지 여부.
4. 요청한 파일의 압축 파일이 없으면웹 서버에서 해당 파일을 반환합니다. 압축 해제된 요청 파일을 브라우저에 전송하고 요청 파일의 압축 파일을 압축 버퍼 디렉터리에 저장합니다 ;
5. 요청 파일의 최신 압축 파일이 이미 존재하는 경우 요청 파일의 압축 파일은 6. 요청한 파일이 동적 파일인 경우웹 서버동적으로 콘텐츠를 압축하여 브라우저에 반환합니다. 압축된 콘텐츠는 압축 캐시 디렉터리에 저장되지 않습니다. .
3. Apache
의 gzip 기능을 활성화합니다. 🎜>Apache에는압축을 위해 Gzip 압축 알고리즘을 사용하는 두 가지 모듈이 있습니다: mod_gzip과 mod_deflate. Gzip 웹 압축을 사용하려면 먼저 서버가 이 두 구성 요소 중 하나를 지원하는지 확인하세요. Gzip을 사용하려면 클라이언트 브라우저의 지원도 필요하지만 걱정하지 마세요. 현재 IE, Mozilla Firefox, Opera, Chrome 등 대부분의 브라우저가 Gzip을 지원합니다.
HTTP 헤더를 보면 사용된 클라이언트 브라우저가 gzip 압축을 지원하는지 빠르게 확인할 수 있습니다. 전송된 HTTP 헤더에 다음 정보가 나타나면 브라우저가 해당 gzip 압축을 지원한다는 의미입니다.
코드는 다음과 같습니다.
Accept-Encoding: gzip은 mod_gzip을 지원합니다.Accept-Encoding: deflate는 mod_deflate를 지원합니다.
Accept-Encoding: gzip,deflate는 mod_gzip과 mod_deflate를 모두 지원합니다.
참조 방화범에 있습니다:
참고:
Content-Encoding: gzip
2) CompressionLevel 9는 압축 수준(압축 비율 설정)을 의미하며 값 범위는 1~9이며, 9가 가장 높은 수준입니다. 이는 전송 크기를 (파일 내용에 따라) 최대 80%까지 줄일 수 있으며 최소한 절반을 절약할 수 있는 것으로 이해됩니다. CompressionLevel은 프로세서 성능과 웹 페이지 압축 품질 사이의 균형을 유지하기 위해 기본적으로 값 6으로 설정할 수 있습니다. 높은 수준으로 설정하면 압축률은 높아지지만 너무 높게 설정하지 않는 것이 좋습니다.
3) 이미 압축된 jpg 등의 이미지 형식, mp3 등의 음악 파일, zip 등의 압축 파일을 압축할 필요가 없습니다.
위 내용은 내용의 측면을 포함하여 apache php gzip 압축 출력의 구현 방법을 소개합니다. PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.