На cache invalidation, то HTTP спецификации говорит:Как я могу аннулировать кеш HTTP с заголовком Location?
Некоторые методы 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) содержит Расположение заголовок с URI, используемый в запросах (1) и (3). Я считаю, что это должно аннулировать кэшированную запись для folders/folder.34/contents, но ответ в (3), похоже, поступает из кеша в любом случае в соответствии с свойством HttpWebResponse.IsFromCache.
Я пробовал множество форматов URI в заголовке Расположение, в том числе:
Location: ../../../folders/folder.34/contents
(и других различных '../' подсчетов)Location: folders/folder.34/contents
Location: /folders/folder.34/contents
Location: http://myhostname/folders/folder.34/contents
Но все же (3) всегда похоже на кеш. Что я здесь делаю неправильно?
Возможно ли, что кеш WinInet (например, IE, .NET) не проявил правильное поведение? – ladenedge
@ladenedge: конечно;) HTTP довольно обширен, и любой клиент там будет иметь некоторые ошибки. Кроме того, я считаю, что вы тоже это доказали. Вопрос: вы ошиблись, считая, что ваш стек программного обеспечения непогрешим, игнорируя собственную логику? ;) – Evert
кажется настолько фундаментальным, хотя (всхлип). В любом случае, спасибо за помощь! – ladenedge