问题标签 [http-status-code-200]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python-3.x - 为什么有效的 PDF 链接返回状态码 404?
我正在尝试访问有效 url 的 status_code,但是尽管存在链接,但仍返回 404。这是返回 404 的代码行:
这是我试图访问的 PDF 的链接:https: //www.moh.gov.sg/docs/librariesprovider5/local-situation-report/situation-report-21-jul-2020.pdf
有人能向我解释为什么我尝试访问有效的 url 得到 404 吗?谢谢你。
http - 缓存控制不返回 304
我有一个网站,其中包含不变的静态资产(js、图像等)。这些资产中的每一个都具有带有以下属性的缓存控制标头集:
但是,当我重新加载页面时,我仍然看到来自服务器的 200 响应而不是 304 响应。浏览器指示资产正在从内存或磁盘缓存中提供服务,但它仍在发出请求并下载内容。这以前可以工作,我倾向于这是一个浏览器错误,但我不完全确定。
caching - 状态 200(来自磁盘缓存)和 304 未修改问题
我正在使用 Next.js 自定义服务器,默认情况下,它会在每个页面 GET 请求上发送强 ETag 标头。对于每个请求,我还手动添加Cache-Control
标头res.setHeader('Cache-Control', 'public, max-age=${60 * 60}, s-maxage=${60 * 60 * 24}, must-revalidate')
我还使用了 Cloudflare 的负载平衡和缓存机制。根据此文档https://support.cloudflare.com/hc/en-us/articles/218505467-Using-ETag-Headers-with-Cloudflare我满足了与强 ETag 相关的每个要求。页面规则配置如下: 页面规则配置截图。
第一个奇怪的行为是,由于某种原因,在标头中的客户端上,我注意到弱 ETag。缓存的行为也有点奇怪。如果我要打开一个新的站点帖子,我通常会遇到cf-cache-status: HIT
标题,这意味着 Cloudflare 已经为这个特定的帖子准备了缓存。我的期望是,page reloading
在同一个选项卡中,页面将重新创建表单disk cache
,但由于某种原因它发出请求,其结果是状态 304(未修改)。但是,如果我将复制 url 并在新选项卡中打开相同的帖子,它将从磁盘缓存中重新创建(应该如此),并且在页面重新加载后它会使用响应 304(未修改)发出请求。
直接源服务器请求-响应:
Cloudflare 代理请求-响应:
为什么会这样?理想情况下,我想在最近的一小时内从磁盘缓存中重新创建页面,并在它发出重新验证请求之后。并每天从源服务器进行 Cloudflare 的缓存重新验证。
您可以在标头中看到源服务器和 cloudflare 之间的 ETag 不同