はじめに
.htaccessに『AddOutputFilterByType DEFLATE text/html』を書いたのに、ブラウザのレスポンスヘッダーに『Content-Encoding gzip』が表示されない場合の対処方法をまとめました。
サーバーでWAF(Webアプリケーションファイアウォール)“SiteGuard”などを利用している場合、.htaccessに『AddOutputFilterByType DEFLATE text/html』を書いても、ブラウザのレスポンスヘッダーに『Content-Encoding gzip』が表示されないことがあります。
【結論】.htaccessでRequestHeaderにAccept-Encodingを追加
RequestHeader set Accept-Encoding "gzip, deflate"
AddOutputFilterByType DEFLATE text/html
SiteGuard(WAF)などを利用している場合、ブラウザのリクエストヘッダーの『Accept-Encoding gzip, deflate』が読み込まれないことがある1ため、.htaccessでリクエストヘッダーに『Accept-Encoding gzip, deflate』を追加して、.htaccessの『AddOutputFilterByType DEFLATE text/html』が有効になるようにしています。
gzip(deflate)が有効か確認できるサイト
GIDZipTest: Web Page Compression (Deflate / Gzip) Test - GIDNetwork
http://www.gidnetwork.com/tools/gzip-test.php
フォームにサイトのURLを入力してチェックボタンを押すとgzip(deflate)が有効か確認できる。gzip(deflate)が有効の場合、[Web page compressed? Yes][Compression type? gzip]などと表示される。サイトのレスポンスヘッダーも表示される。
参考サイト
SiteGuardを導入するとHTTP_ACCEPT_ENCODINGなどのHTTPヘッダが削除されてしまう件 #PHP - Qiita
https://qiita.com/bicstone/items/3d88fb943d7f08eb3335
さくらのレンタルサーバでSiteGuard(WAF)を利用した場合に、一部のリクエストヘッダーが削除されるケースを紹介。
関連サイト
以下のサイトで、サイトの表示速度や圧縮状況をチェックできます。
PageSpeed Insights
https://pagespeed.web.dev/
《 分析結果例 (text.sakura.ne.jp) 》
https://pagespeed.web.dev/analysis/https-text-sakura-ne-jp/ocjfpkw05p
GTmetrix
https://gtmetrix.com/
《 分析結果例 (text.sakura.ne.jp) 》
https://gtmetrix.com/reports/text.sakura.ne.jp/C1U1GLsS/
WebPageTest - Website Performance and Optimization Test
https://www.webpagetest.org/
《 分析結果例 (text.sakura.ne.jp) 》
https://www.webpagetest.org/result/251018_YiDc1F_4C3/
GZIP Compression Test | GiftOfSpeed
https://www.giftofspeed.com/gzip-test/
HTTP Header Security Test - HTTP Observatory | MDN
https://developer.mozilla.org/en-US/observatory
《 分析結果例 (text.sakura.ne.jp) 》
https://developer.mozilla.org/en-US/observatory/analyze?host=text.sakura.ne.jp
おわりに
私が趣味で運営しているサイト2で、『gzip(deflate)が有効な時』と『gzip(deflate)が無効な時』のサイトの読み込み時間を20回ずつ測ったところ、ほとんど差が無く、たまに『有効な時』の方が読み込みに時間がかかったため、私のサイトではgzip(deflate)を使わないことにしました。
(text_sakura)