問題の背景
HTTPプロトコルのGETリクエストメソッドのリクエストヘッダーのコンテンツ:If-Modified-Since
具体的な説明
HTTPリクエストヘッダーのIMS(If-Modified-Since):ブラウザキャッシュによって記録されたファイルの最後のサーバー変更時刻。
ブラウザーがHTTP要求を送信すると、If-Modified-Sinceがサーバーに送信され、サーバーはこの時間をサーバー上の実際のファイルの最終変更時間と比較します。
時刻が一致している場合、HTTPステータスコード304(Not Modified)が返され、クライアントを受信すると、クライアントはローカルキャッシュファイルをブラウザに直接表示します。
時間が矛盾している場合、HTTPステータスコード200と新しいファイルのコンテンツが返され、クライアントはそれを受信した後、古いファイルを破棄し、新しいファイルをキャッシュして、ブラウザーに表示します。
ブラウザが初めてサーバーのファイルにアクセスするとき。ローカルキャッシュがないため、If-Modified-Sinceは実行されません。
サーバーは要求を受信し、処理を開始します。2000への応答として、httpヘッダーには次のラベルがあります:Last-Modified(date)、つまり、サーバーによってローカルに記録されたファイルの最終変更時刻。
ブラウザは応答を受信し、ローカルにキャッシュします。
ブラウザが2回目のリクエストを行うと、If-Modified-Since(date)が含まれます。
サーバーはIf-Modified-Since(日付)を比較し、それがサーバーのローカルレコードと同じかどうかを確認します。ステータス200または304に戻るかどうかを決定します。