キャッシュの無効化について、HTTP仕様は次のように述べています。
一部のHTTPメソッドは、キャッシュにエンティティを無効にする必要があります。これは、Request-URI、またはLocationヘッダーまたはContent-Locationヘッダー(存在する場合)によって参照されるエンティティのいずれかです。
Locationヘッダーを使用してキャッシュ内のエントリを無効にしようとしていますが、機能していないようです。これが私のユースケースです:
15:13:23.9988 | GET | folders/folder.34/contents - 200 (OK)
15:13:24.1318 | PUT | folders/folder.34/contents/test.docx - 201 (Created)
15:13:24.1548 | GET | folders/folder.34/contents - 200 (OK) (cached)
(2)の応答には、要求(1)および(3)で使用されるURIを含むLocationヘッダーが含まれています。これにより、 folders / folder.34 / contentsのキャッシュされたエントリが無効になると思いますが、(3)の応答は、 HttpWebResponse.IsFromCacheプロパティに従ってキャッシュから送信されているように見えます。
Locationヘッダーで次のような多数のURI形式を試しました。
Location: ../../../folders/folder.34/contents
(およびその他のさまざまな'../'カウント)Location: folders/folder.34/contents
Location: /folders/folder.34/contents
Location: http://myhostname/folders/folder.34/contents
しかし、それでも(3)は常にキャッシュから来ているようです。私はここで何が間違っているのですか?