Webサーバとブラウザ間で効率的にデータのやり取りを行うためにいくつかの手法がとりれられています。
KeepAlive は HTTP/1.1 から用意されたもので、Webサーバとクライアントとの接続を一定時間保持する仕組みです。
HTTPは前述の通り、1回の要求とその応答ごとにコネクションが切断されます。最近の一般的なホームページでは、HTMLデータだけでなく画像データやスタイルシート、Javascriptなどが含まれており、1つのデータのやりとりを1回のコネクションの確立で行っていてはWebサーバの負担も多く、表示されるまでに時間がかかってしまいます。
そこで考え出されたのが KeepAlive で、一度コネクションが確立されたら、ある条件を満たすまではコネクションを保持するような仕組みが取り入れられました。
このKeepAlive機能は最近のほとんどのWebサーバやブラウザに取り入れられ使用されています。また、ホームページを見る人がそれを意識することはありません。
Webサーバとブラウザ間で効率的にデータのやり取りを行うための手法にリソースの圧縮があります。
リソースの圧縮も HTTP/1.1 から用意されたもので、Webサーバからクライアントへデータを圧縮して送信するという仕組みで、HTTP圧縮とも呼ばれます。
この手法は、ネットワークの回線速度が遅い場合や、データ量によって通信料が変わるような環境での利用に効果を発揮します。
リソース圧縮は、リソース圧縮機能が利用できるブラウザよりWebサーバに対して、要求のヘッダ中に「Accept-Encoding:gzip」というような値を設定して送信します。この要求を受け取ったリソース圧縮に対応したWebサーバは、データを指定された圧縮形式(この例ではgzip)で圧縮し、応答のヘッダ中に「Content-Encoding:gzip」というような値を設定し、圧縮したデータと共にブラウザへ送信します。
KeepAliveと同様、現在では多くのWebサーバ、ブラウザが対応しており、ホームページを見る人がそれを意識することはありません。