HTTP 服务器应该如何在一秒钟内处理多个更改的 If-Unmodified-Since?

Posted

技术标签:

【中文标题】HTTP 服务器应该如何在一秒钟内处理多个更改的 If-Unmodified-Since?【英文标题】:How should an HTTP server handle If-Unmodified-Since with multiple changes within one second? 【发布时间】:2014-03-12 11:21:52 【问题描述】:

HTTP Spec (RFC-2616) 在第 14.28 节中声明 If-Unmodified-Since 标头必须被 HTTP 服务器识别并且它只有一秒的精度。

如果资源每秒更改一次以上,服务器应如何处理此标头?

我的理解是,服务器必须以“412 Precondition Failed”响应任何带有 If-Unmodified-Since 标头的请求,因为它不知道客户端具有哪个版本的状态。还是服务器应该忽略这个问题并假设客户端知道它在做什么?

【问题讨论】:

【参考方案1】:

在这种情况下使用 etags / if-match 标头。

【讨论】:

我的问题是关于如何实现正确的服务器。服务器无法强制使用所述标头。 实际上服务器不能强制使用任何条件标头(第一次访问者)。除此之外,您几乎可以在 etag 中放置任何内容(例如时间到毫秒)。我想说的是,您可能最好依靠 eTags/If-Match/If-None-Match 而不是日期标题(正如您所说的不符合您的精度要求)

以上是关于HTTP 服务器应该如何在一秒钟内处理多个更改的 If-Unmodified-Since?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Laravel 中在一秒钟内发出并发请求时避免重复记录

分页频繁变化的数据

sh 在一秒钟内重复评估CPU占用最多的CPU(至少保持一个核心忙于100%)并且杀死p

UIImageView 立即更改图像

如何在几秒钟内发送 50.000 个 HTTP 请求?

怎么设计一个秒杀系统