今後の呼び出しで HTTP 304 (Not Modified) ステータスを利用できるように、各応答に ETag を付ける Web サービスがあります。私が生成する ETag は、実際にはクエリ タイプとタイムスタンプを Base64 でエンコードしたものです。
私が抱えている問題は、ブラウザーが Accept-Language が異なる同じリソースを要求する場合です。ブラウザーは現在、同じ If-None-Match ヘッダーを送信しているため、実際のリソースが別の言語で返されたとしても、応答は 304 です。したがって、これを行う方法は、Vary ヘッダーを追加して、以下に示すように、Accept と Accept-Language によって応答が異なることをクライアントに指定することだと考えました。
Vary:Accept、Accept-Language
ただし、受け入れ言語に関係なく、私のブラウザー (Chrome) は同じ ETag を使用します。ここで使用する正しい規則は何ですか?
ありがとう