37342


**GoogleのPageSpeedを試したら、下記のように書いてありました。**

> gzip や deflate を使用してリソースを圧縮することで、ネットワークで送信されるバイト数を減らすことができます

・意味が分からないので検索したら[このページ](https://syncer.jp/how-to-make-gzip)が見つかったのですが、内容難しいです。

**環境**  
・Cent OS  
・Apache

* * *

**Q1.Deflateについて、**  
・圧縮アルゴリズム？

**Q2.「mod_deflate」について**  
・gzip圧縮を行うApacheのモジュール？  
・Deflateとの関係性は？

**Q3.「.htaccess」に記述してmod_deflateを一括設定した場合**  
・従来通りFTP送信するだけ？  
・送る際、勝手に圧縮され、届いたら解凍される？  
・jsなどはわざわざ事前にminファイル化する必要もない？


CC BY-SA 3.0
2017-08-19T14:42:58.720
37340
2017-08-25T08:07:19.917
2017-08-21T08:49:26.890
3054
7886
question
apache 圧縮 gzip deflate
Deflate は圧縮アルゴリズムですか？ mod_deflate はそれと関係ありますか？


### Q1.Deflateについて、

A1. はい。圧縮アルゴリズムのことです。gzipで採用されています。

### Q2.「mod_deflate」について

A2. はい。Apacheでデータ圧縮するするためのモジュールです。

### Q3.「.htaccess」に記述してmod_deflateを一括設定した場合

A3.
FTP通信ではなく、HTTP/HTTPS通信ですが、通常のそれと同じように通信は行われます。(URLにGET要求を送れば、対応するデータ(HTMLページ、JSONデータ、等)  
データ圧縮と解凍は、ApacheとWebブラウザが適宜行うので、Webブラウザの利用者が意識する必要はありません。(※厳密には、Webブラウザが対応している必要がありますが、最近のものであれば、対応しているという認識でよいと思います)  
なお、jsファイルを事前にmin化するかどうかについては、好みの範疇と思います。(deflate圧縮で十分データサイズが小さくなったと考えるのなら不要ですし、1バイトでも小さくしたいのであれば、min化したほうが、圧縮後のデータサイズは小さくなるかも知れませんので、min化しておく、という考え方もあります)


CC BY-SA 3.0
2017-08-19T15:12:17.487
37342
2017-08-19T15:12:17.487
20098
37340
answer


補足します。

> jsなどはわざわざ事前にminファイル化する必要もない？

gzipやdeflateはあくまでもコンテンツを復元可能な可逆圧縮です。対してminファイルは意味が変わらない範囲での不可逆圧縮で、効果範囲が異なります。特に複数ファイルをまとめた場合、各ファイルごとに送受信されるヘッダーを削減できたり、無関係な関数間で変数名を共通化させることにより圧縮率を向上させたりなどmod_deflateでは実現できない効果もありますので、必要に応じて併用すべきです。


CC BY-SA 3.0
2017-08-25T08:07:19.917
37484
2017-08-25T08:07:19.917
4236
37340
answer