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

adachi.ryo

1989年生まれのFindy/SRE。ホスティングから大規模なアドテクなどのインフラエンジニアとして携わる。現在はサービスの信頼性向上、DevOps、可用性、レイテンシ、パフォーマンス、モニタリング、オブザーバビリティ、緊急対応、AWSでのインフラ構築、Docker開発環境の提供、IaC、新技術の検証、リファクタリング、セキュリティ強化、分析基盤の運用などを担当している。 個人事業主では数社サーバー保守とベンチャー企業のインフラコンサルティングを行うほか、TechBullを創業し、未経験者向けにSREのコーチングやコミュニティ運営、LT大会の開催、 会員管理システム「Members」の開発をリードしている。さらに、エンジニア向けYouTubeメディア「TECH WORLD」ではSREとの対談を行い、過去には脆弱性スキャナ「Vuls」のOSS活動にも貢献。

0件のコメント

コメントを残す

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