在 nginx 和浏览器行为上缓存静态资源

发布于 2024-11-18 02:30:02 字数 266 浏览 2 评论 0原文

我想缓存静态资源,所以我为静态资源设置了一个过期标头。

设置过期标头后,我注意到:

  1. Firefox 和 IE 不会向 nginx 发送静态资源请求,
  2. 但所有其他浏览器(Chrome、Safari、Opera)向我的 nginx 发送请求,nginx 响应 304 Not Modified

是 chrome, Safari、Opera 缓存我的静态资源?这是正常行为吗?如果不是,我还应该做什么,以便其他浏览器缓存静态资源?

I wanted to cache static resources so I set an expires header for static resources.

After setting the expires header, what I notice is:

  1. Firefox and IE do not send requests to nginx for static resources
  2. But all other browsers(Chrome, Safari, Opera) send a request to my nginx and nginx responds with 304 Not Modified

Are chrome, safari, opera caching my static resources? Is this normal behaviour? If not what should I do in addition so that static resources are cached by the other browsers?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

海的爱人是光 2024-11-25 02:30:02

仔细查看来自 chrome/safari/opera 的后续 HTTP 请求:

它很可能是一个条件 GET。
另外,304 Not Modified 没有车身。

所以这些浏览器也会缓存,只是不相信内容在过期日期之前保持不变。

他们只是更频繁地闻冰箱里的牛奶:-)

Take a careful look at the subsequent HTTP requests from chrome/safari/opera:

It's most likely a conditional GET.
Also, the 304 Not Modified does not have a body.

So these browser cache too, just don't trust the content to stay the same before the expiration date.

They are just sniffing the milk in the fridge more often :-)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文