您是否知道在野外是否有If-Unmodified-Since的实际用途?
description看来,此 header 旨在帮助避免脏写。即,仅在自客户端上次修改时间以来尚未对其进行修改的情况下,才更新该资源。与If-Modified-Since不同,它似乎对缓存没有帮助。我想念什么吗?

最佳答案

您可以使用它,例如为range request
例如:您的客户端请求资源http://examp.le/foo?id=3,并且Contents-length为4096,但是您的客户端仅请求前1024个字节。然后,它可以(稍后再)请求剩余的3072字节,但是如果同时更改了资源则没有意义。

编辑:如果您同时更改了资源,也可能不想更改/更新数据。例如。您请求客户记录并进行编辑。如果其他人同时更改了记录,则可能导致不一致。因此,使用if-unmodified-since(-I-retrieved-the-data) header 发送您的更新,如果记录已更改,则网络服务器将/应该拒绝您的更新-您的客户端可以随后请求“冲突”数据。

edit2:因为您已经要求“在野外对If-Unmodified-Since进行任何实际使用”:
参见http://msdn.microsoft.com/en-us/library/dd179371.aspx#Subheading1
假设您首先是requested the Blob properties。现在您知道Content-type和Content-length(也许您需要使用它进行某种分配)。在您发送第二个Get Blob请求之前,某人/某物可能会更改blob。如果将Last-Modified的值作为If-Unmodified-Since header 的值发送,则如果blob已更改,则服务器将以适当的错误代码进行响应。

这些是作为并发控制手段的乐观锁/戳记锁的示例,其中Last-Modified header 的值用作保护 token 。参见例如https://en.wikipedia.org/wiki/Optimistic_concurrency_control

10-06 08:53