304 200 で変更されていません (キャッシュから) 質問する

304 200 で変更されていません (キャッシュから) 質問する

「ステータス 304 未変更」と「200 (キャッシュから)」の違いを正確に理解しようとしていますスクリーンショットはこちら

最後に変更した JavaScript ファイルで 304 が表示されます。なぜこのようなことが起こるのでしょうか? ご協力ありがとうございます。

ベストアンサー1

https://sookocheff.com/post/api/effective-caching/これら 2 つの HTTP ステータス コードについて必要な理解を深めるのに最適な情報源です。

これをじっくり読んで、私はこう理解しました

通常の使用法では、URL を取得すると、Web サーバーはリソースの現在の表現と、それに対応する ETag 値を返します。この値は、HTTP 応答ヘッダーの「ETag」フィールドに配置されます。クライアントは、その表現と ETag をキャッシュするかどうかを決定できます。後でクライアントが同じ URL リソースを再度取得する場合、クライアントはまず、ローカルにキャッシュされた URL のバージョンが期限切れかどうかを確認します (Cache-Control ヘッダーと Expire ヘッダーを使用)。URL が期限切れでない場合は、ローカルにキャッシュされたリソースを取得します。URL が期限切れ (古い) であると判断された場合、クライアントはサーバーに接続し、以前に保存した ETag のコピーを、リクエストとともに「If-None-Match」フィールドで送信します。(出典:https://en.wikipedia.org/wiki/HTTP_ETag

ただし、アセットの有効期限が将来に設定されている場合でも、ブラウザは 'Vary' ヘッダーに従って ETag を使用して条件付き GET でサーバーにアクセスできます。 'vary' ヘッダーの詳細:https://www.fastly.com/blog/best-practices-using-vary-header/

おすすめ記事