1
私は将来の呼び出しでHTTP 304(Not Modified)ステータスを使用できるように、各応答にETagを設定するWebサービスを用意しています。 ETagは、実際には、タイムスタンプとともにクエリタイプのBase64エンコーディングを生成します。Accept-Languageを使用したETag
問題は、ブラウザーが異なるAccept-Languageで同じリソースを要求している場合です。ブラウザは現在、同じIf-None-Matchヘッダーを送信しているため、実際のリソースが別の言語に戻ってきたと考えられる場合でも、応答は304です。だから、これを行う方法は、Varyヘッダーを追加して、応答がAccept & Accept-Languageで変化することをクライアントに指定することでした。
は異なります受け入れ言語
を、受け入れしかし、私のブラウザ(クローム)にかかわらず、受け入れ言語の同じETagをを使用しています。ここで使用する正しい規約は何ですか?ありがとう
これは少し弱いようですが、私はETagで実際のコンテンツをエンコードできますが、クライアントが同じリソースに対して同じETagを別の言語(fr)で使用しようとすると、単純にfrの新しいETag。クライアントが同じコンテンツを元の言語に戻して再度クエリを実行すると、fr ETagは無視され、新しいETagが渡されるため、304は使用されません。このキャッシュソリューションは、どのHTTPヘッダーが出力内容に影響を与えるかをクライアントに通知する、このユースケース(VARY)を解決するための特定のヘッダーです。 – Agent96