公章TweetHTTP圧縮とはHTTP通信を自動的に圧縮する(WebサーバがHTTP通信を圧縮し、ブラウザでその圧縮を解く)ことです。メリット通信量を減らし全体的なスループットをあげることができます。モバイルのような帯域の限られている環境では特に有効です。デメリット圧縮および伸張にCPUパワーを必要とします。サーバ:HTTP圧縮を有効にすると配信能力が低下します。クライアント:スマートフォンの普及とともにCPU負荷および消費電力の増加は大きな問題ではなくなっていますプロトコルクライアント(ブラウザ)リクエスト以下のようにAccept-Encodingを付けてGETリクエストを送信します。deflateサーバレスポンス以下のようにContent-Encodingが付けられたレスポンスが返され、httpペイロードは指定された方法で圧縮されます。gzipgzip圧縮されたペイロード圧縮方式Accept-encoding、Content-encodingで指定できる圧縮方法には以下のようなものがあります(抜粋です)。Cacheの基本動作で、多くのCDNがサポートしている可能性があります。基本的な動作として、Cacheサーバは圧縮を行わず、複数のコンテンツ(たとえば、非圧縮html、gzip圧縮html、deflate圧縮html)を保持します。以下のようなフローで保存したコンテンツをクライアントに送信します:オリジンサーバが送信した圧縮済みHTTPペイロードをそのまま保存するEncoding別にキャッシュを生成するクライアントからの要求(Accept-Encoding)にあわせたキャッシュをクライアントに送信するこのEncodingに合わせたキャッシュオブジェクトの識別は、次のようにVaryヘッダ(RFCで規定されたCache動作指定)をオリジンサーバが付与することで実現できます。Accept-Encoding注意点Cacheサーバは(Content-Encoding別にオブジェクトをキャッシュしているのではなく)、Accpet-Encoding別にオブジェクトをキャッシュしています。deflate”に対して使用されます。gzip”のように単独でencodingが指定されたリクエストに対しては、別のオブジェクトが生成されます。CDNでは、無条件にVary動作を許すとひとつのURLに対して複数のオブジェクト(数十程度:Accept-Encodingの組み合わせ分)が生成される可能性があるため、何らかの制限をかけている場合があります。「gzip(もっとも多くの場合に使用されてている)のみを許し、それ以外は無視する」というような制限がかかっている場合があります。Cache上圧縮モードオリジンサーバでは圧縮を行わずCacheサーバで圧縮を行います。この機能は各CDNに依存した実装になります。