ウェブキャッシュ(またはHTTPキャッシュ)は、ワールドワイドウェブを最適化するためのシステムです。クライアント側とサーバー側の両方で実装されます。マルチメディアやその他のファイルをキャッシュすることで、ウェブ閲覧時の全体的な遅延を軽減できます。 [ 1 ] [ 2 ] 2000年に、コンピュータ科学者のジム・グレイとプラシャント・シェノイは、ウェブページのキャッシュに関して、ウェブブラウザは「ウェブページがその存続期間中に再参照される可能性がある場合は、ウェブページをキャッシュすべきである」と計算しました。[ 3 ]
フォワードキャッシュとは、Webサーバーのネットワーク外、例えばクライアントのWebブラウザ、インターネットサービスプロバイダ、または企業ネットワーク内に存在するキャッシュのことです。ネットワーク対応のフォワードキャッシュは、アクセス頻度の高いアイテムのみをキャッシュします。クライアントとWebサーバーの間にあるプロキシサーバーは、HTTPヘッダーを評価し、Webコンテンツを保存するかどうかを選択できます。
リバースキャッシュは、1つまたは複数のWebサーバーの前に配置され、インターネットからのリクエストを高速化し、サーバーのピーク負荷を軽減します。これは通常、ネットワーク全体にわたってWebコンテンツのコピーを保持するコンテンツ配信ネットワーク(CDN)です。
ハイパーテキスト転送プロトコル(HTTP)は、キャッシュを制御するための3つの基本的なメカニズム(鮮度、検証、無効化)を定義しています。これは、サーバーからのHTTP応答メッセージのヘッダーで指定されます。
鮮度機能により、オリジンサーバーでレスポンスを再確認することなく使用でき、サーバーとクライアントの両方で制御できます。たとえば、Expiresレスポンスヘッダーはドキュメントが古くなる日付を示し、Cache-Control: max-ageディレクティブはレスポンスが何秒間有効かをキャッシュに指示します。
検証機能を使用すると、キャッシュされたレスポンスが古くなった後でも有効かどうかを確認できます。たとえば、レスポンスにLast-Modifiedヘッダーがある場合、キャッシュはIf-Modified-Sinceヘッダーを使用して条件付きリクエストを行い、レスポンスが変更されたかどうかを確認できます。ETag (エンティティタグ)メカニズムは、強力な検証と弱い検証の両方を可能にします。
キャッシュの無効化は通常、キャッシュを通過する別のリクエストの副作用として発生します。例えば、キャッシュされたレスポンスに関連付けられたURLに対して、後からPOST、PUT、またはDELETEリクエストが送信されると、キャッシュされたレスポンスは無効化されます。多くのCDNやネットワーク機器メーカーは、この標準的なHTTPキャッシュ制御を動的キャッシュに置き換えています。
1998年、デジタルミレニアム著作権法により、米国法典(17 USC §: 512)に、キャッシュの目的でシステムオペレーターを著作権責任から免除する規定が追加された。
これはサーバーサイドのウェブキャッシュソフトウェアの一覧です。