ディスク キャッシュ: ディスク キャッシュ データ、時間遅延はありますが、非常にわずかであり、サーバーに直接応答を要求する場合に比べて、基本的にユーザーには認識されません。
メモリキャッシュ: ディスクキャッシュデータ、基本的に時間遅延なし
ネゴシエーション キャッシュ (nginx には独自の機能が付属しており、構成は必要ありません):
クライアントは nginx にアクセスしてリソースを要求し、nginx はリソースをクライアントに返し、last_modify の最終変更時刻をクライアントに伝えます。
クライアントはリソースと last_modify を取得し、次回このファイルを要求するときにリクエスト ヘッダーに last_modify を書き込むと、サーバーは最終変更時刻を取得し、ローカル ディスク ファイルの時刻と比較します。ファイルがまだ同じで変更されていないことを意味する場合は、304 を直接返します。その後、クライアントはローカル ディスクにキャッシュされたリソースを直接使用します。
例:
最初のリクエストは通常のファイルとステータス コード 200 を返します。
最初のレスポンスではEtag(ファイルのハッシュ値)とLast-Modified(最終変更時刻)が返され、どちらの値もネゴシエーション内容として利用できます。
このリクエストでは 304 を返します
強制キャッシュ:
nginx にリクエストすると、nginx はリソースを返し、有効期限が切れると、クライアントはこの時間をローカルで計算します。有効期限が聞こえていない場合は、サーバーに再度リクエストする必要はなく、ローカル クライアントのキャッシュ ファイルが直接保存されます。使用済み。
ネゴシエーションキャッシュを無効にする
localtion の下に etag を追加します; //etag を閉じます
ヘッダーの last-Modifid を空に設定します
Set if_modified_since off; //クライアントが最終変更時刻を返すかどうかは、保存されていない場合は常に 200 を返します。
nginxは必須のキャッシュを使用します
ヘッダーにキャッシュ制御「max-age:300」を追加
強制キャッシュとは、ブラウザに URL を直接入力してリクエストを行った場合にのみキャッシュがローカルで読み取られることを意味し、ブラウザがリクエストを更新するときには強制キャッシュは使用されません。
知らせ:
一般に、必須キャッシュとネゴシエーション キャッシュは併用されます。ユーザーが初めてリクエストするときは、ローカル キャッシュを使用してリクエスト サーバーを etag と last_modified で更新します。サーバーは、これら 2 つの値が等しいかどうかを判断します。サーバーに送信した場合は 304 を直接返し、それ以外の場合は最新のリソースをクライアントに返します。