html、cssはgzip圧縮されており、jsのみがなぜか圧縮されていないという現象が起きたので、改めてサーバからクライアントへのデータ通信量を減らす方法であるgzipについてブログします


■そもそも圧縮通信のメリット/デメリット

  • ネットワークの通信量を削減できる
  • ブラウザのレンダリングの開始を早く行える
  • 圧縮アルゴリズムをサポート必須
  • 処理負荷が高くなる

ちなみに圧縮アルゴリズムはHTTPリクエストの際にAccept-Encodingヘッダを付与するとサーバに伝えられます。そして、サーバ側はそのヘッダで教えてもらった圧縮アルゴリズムをサポートしていると、コンテンツを圧縮して応答するイメージ

・curl -I -H

実際にcurlコマンドでこのブログのAccept-Encodingを覗いて見ると・・・
gzipされていることがわかります。


■JSがgzipされていない理由と対応

・nginx.conf

“application/x-javascript”の設定が入っているのにもかかわらず、JSがgzipされていない理由としてはブラウザがどのようなパターンで入ってくるのか未知数で、互換も込みで指定する際は以下3つの書式が必要になるそうです。

  • text/javascript
  • application/x-javascript
  • application/javascript

ちなみに2006年にMIME-Typeが定義されているので、“application/javascript”が主流みたい。
(http://xn--lcki7of.jp/153/より)

なので、以下のように追加してみたところ!!!


■まとめ

ちなみにH2Oでは“gzip: ON”するだけ!


カテゴリー: Nginx

adachin

1989年生まれのFindy/SRE。ホスティングから大規模なアドテクなどのインフラエンジニアとして携わる。現在はサービスの信頼性向上、DevOps、可用性、レイテンシ、パフォーマンス、モニタリング、オブザーバビリティ、緊急対応、AWSでのインフラ構築、Docker開発環境の提供、IaC、新技術の検証、リファクタリング、セキュリティ強化、分析基盤の運用などを担当している。個人事業主では数社サーバー保守とベンチャー企業のSREインフラコンサルティングやMENTA/TechBullで未経験者にインフラのコーチング/コミュニティマネージャーとして立ち上げと運営をしている。また、過去「脆弱性スキャナVuls」のOSS活動もしており、自称エバンジェリスト/技術広報/テクニカルサポート/コントリビュータでもある。

0件のコメント

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください