gpt4 book ai didi

browser - 浏览器可以缓存 500 Internal Server Error 响应吗?

转载 作者:行者123 更新时间:2023-12-04 21:35:13 25 4
gpt4 key购买 nike

在调试生产问题时,我们发现对 URL 的 GET 请求返回 500 Internal Server Error一个用户但返回 200 OK对于其他人。看起来 500 是从缓存中提供的,但是自从重现这个错误以来的任何尝试都没有成功。

我的问题是:浏览器是否可以缓存错误响应?如果是这样,哪些浏览器支持它以及我需要复制哪些缓存 header ?

我的直觉是不应该缓存错误响应,因为即使错误已修复,您仍将继续被拒绝服务。基于 Which HTTP status codes are cacheable?看起来 500 也不应该被缓存。缓存策略是否在浏览器中一致实现?

最佳答案

一个 500 Internal Server Error指定为 默认情况下不可缓存 .引用 Section 6.1 of RFC 7231Section 6.6.1 500 Internal Server Error of RFC 7231 .如果默认情况下 500 是可缓存的,则规范将明确定义。

但是,根据显式缓存 header ,此行为可能会被覆盖,并且完全可能发生 500 响应被缓存的情况,因为 Section 3 of RFC 7234说,在与您的问题相关的其他事情中,这个:

Note that any of the requirements listed above can be overridden by a cache-control extension;



我的猜测是,在出现 500 错误的情况下,缓存 header 会出现问题。

为了激发 500 响应的缓存,可以尝试设置 public标志在 Cache-Control响应头。

关于browser - 浏览器可以缓存 500 Internal Server Error 响应吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40006148/

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