8

キャッシングがコンテンツネゴシエーションベースのAPIでどのように機能するのか疑問に思っています。XMLまたはJSONでリソースを取得するため、URIは同じになります。次に例を示します。

http://example.com/bikes/mountain

このサービスは、Acceptタイプのヘッダーに基づいてJSON/XMLを返します。キャッシュはどれくらい賢いですか?

例えば:

  • 1つのクライアントがAcceptタイプを使用してこれを要求し、XMLを返す場合。
  • 応答は、Webサーバーによってたとえば1分間キャッシュされます。
  • 2番目のクライアントは、Acceptタイプを使用して同じリソースを要求し、JSONを返します

キャッシングチェックは/コンテンツタイプを受け入れますか?または、これにより、サーバーがキャッシュしたものであるため、JSONリクエスターがXMLデータを取り戻すことになりますか?これがすでに処理されていることは明らかだと思います。そうでない場合は、URIに.xml / .jsonを含めるというかなり大きな議論ではありませんか?

私の質問は基本的に、標準のキャッシュ技術を使用しながらコンテンツネゴシエーションを安全に使用できるかということだと思います。

4

2 に答える 2

3

Darrelは、Varyヘッダーが、リソースのさまざまな表現を取得するために変更できる要求ヘッダーをクライアントに通知するという点で正しいです。

この値は、Acceptヘッダー(この場合はJSONまたはXML)を設定または変更することにより、別のファイル形式での表現を要求できることをクライアントに通知します。Accept-Languageヘッダーを使用すると、マウンテンバイクの英語とフランス語で異なる表現を取得することもできます。

2つのリクエストは異なる値を送信するため、常に別々にキャッシュする必要があります。

Varyヘッダーで「*」の値を使用する場合、それは応答がキャッシュされるべきではないことを意味します。

于 2010-06-10T14:15:14.357 に答える
3

はい。RFC2616のVaryヘッダーの説明を見てください

可変ヘッダーの私の単純な理解では、キャッシュは、可変ヘッダーで名前が付けられたヘッダーフィールドを使用して、キャッシュされた表現を一意に識別します。

于 2010-06-10T13:57:19.007 に答える