gpt4 book ai didi

http - 续订 HTTP ETag

转载 作者:可可西里 更新时间:2023-11-01 16:18:49 34 4
gpt4 key购买 nike

我正在使用 WebDav 将元数据放在服务器的文件和文件夹中,并根据文件的 ETag 属性使用缓存来避免对服务器进行不必要的请求。

基本上,我发送一个 HEAD 请求并检查 ETag 是否与我在本地的 ETag 匹配。如果没有,那么我会发送一个更大、更慢的 PROPFIND检索其他属性的方法。

我构建这个缓存​​的想法是每次修改文件时都会更改 ETag,包括修改、添加或删除元数据时。

然而,我最近发现情况并非如此:

Because clients may be forced to prompt users or throw away changed content if the ETag changes, a WebDAV server should not change the ETag (or the Last-Modified time) for a resource that has an unchanged body and location. The ETag represents the state of the body or contents of the resource. There is no similar way to tell if properties have changed.

(RFC 4918,http://www.webdav.org/specs/rfc4918.html#etag,强调我的)

由于每当属性更改时使缓存失效对我来说很重要,我想知道:有没有办法手动指示 Web 服务器更新 ETag ?

最佳答案

有几个不同的选项。如果 etag 是根据内容生成的(一个坏主意),那就更难了。在我们的解决方案中,我们生成了一个不同的标签(ptag),我们在属性更改时更新它,您可以使用 PROPFIND 查询它,我们将它作为 X-PTag header 返回到响应中。如果 etag 是在 PUT 上随机生成的,那么您可以再次 PUT 相同的数据,它会给您一个新的 etag。

关于http - 续订 HTTP ETag,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11793590/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com