HTTPヘッダーを使用して条件付きリクエストを実装するには、2つの異なる方法があるようです。どちらもキャッシング、範囲リクエスト、同時実行制御などに使用できます...:
- クライアントがリソースのタイムスタンプを送信するIf-Unmodified-Since および If-Modified-Since 。
- If-Modified および If-None-Modified 。クライアントはリソースのETag表現を送信します。
どちらの場合も、クライアントはリソースに関する情報を送信します。これにより、クライアントがリソースを最後に参照してからリソースが変更されたかどうかをサーバーが判断できるようになります。次に、サーバーは、クライアントから提供された条件付きヘッダーに応じて、要求を実行するかどうかを決定します。
なぜ2つの別々のアプローチが利用できるのかわかりません。確かに、サーバーはタイムスタンプから ETag を生成することを非常に簡単に選択できるため、ETag はタイムスタンプに取って代わります。
だから、私の質問は次のとおりです。
- ETag よりも If-Unmodified-Since/If-Modified-Since を好むシナリオはどれですか?
- どのシナリオで両方が必要になる可能性がありますか?