LINEで送る
Pocket

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”するだけ!

LINEで送る
Pocket

カテゴリー: Nginx

あだちん

1989年生まれ。 ランサーズ/SRE。 ホスティングから大規模なアドテクなどのインフラエンジニアとして携わり、他社インフラレスポンス改善などの副業、ansibleでのインフラコード化を推進し、未経験によるエンジニアのメンターなども実施している。また、「脆弱性スキャナVuls」のOSS活動もしており、自称エバンジェリスト/広報/VulsRepo init file,chatwork通知のコントリビュータでもある。現在はDocker開発環境の提供、AWSで新サービスのインフラ構築、PHPバージョンアップ、新卒採用、採用広報、分析基盤を担当している。

コメントを残す

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