使用什么 HTTP 响应代码向客户端发出新版本可用的信号?

What HTTP response code to use to signal to a client that a new version is available?

提问人:ozzcer 提问时间:8/31/2023 更新时间:8/31/2023 访问量:52

问:

我管理着一个应用程序,该应用程序具有不定期的更新计划,需要实时修复并处理实时数据。我想通知客户(目前只是 Web 客户端),如果他们碰巧长时间保持浏览器窗口打开(我们的客户经常发生)并错过更新,则需要新版本。我建议的解决方案是将客户端的版本包含在对服务器的每次调用的标头中,如果服务器识别到版本标头不同步,它将返回一个状态代码,该代码将触发通知,通知用户刷新应用程序。该应用程序是一个有角度的 SPA,因此需要这样做,因为它可以永久保留在应用程序中,而无需再次调用索引页。最适合使用的状态代码是什么?另一种选择是使用轮询系统来检查版本,但由于应用程序是实时的,因此尝试限制异步任务。

目前,网站页面缓存并使用电子标签来识别页面是否已更改。只要用户实际对index.html页面发出新请求,这就可以正常工作,这并不总是发生。

http-headers 浏览器缓存 http-status-codes 页面刷新

评论


答:

0赞 Quentin 8/31/2023 #1

HTTP 状态代码告诉客户端有关所请求资源的信息。他们不会告诉客户端有关其他资源的信息。

我会考虑扭转你提出的方法。沿 or 行使用自定义响应标头,并让客户端检查该标头以查看它是否支持该版本的 API(如果不支持,则检查客户端的更新)。ExampleDotCom-API-Version: 2023.08.31ExampleDotCom-Min-Client-Version: 2023.08.31