首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >请求头缓存策略与响应头的区别

问请求头缓存策略与响应头的区别
EN

Stack Overflow用户
提问于 2013-08-20 22:52:42
回答 2查看 1.1K关注 0票数 0

我在AWS上托管了一些js。我想缓存它,以便不为304 GET请求支付额外的费用,但我不明白为什么两个头文件是不同的。

代码语言:javascript
复制
Request Method:GET
Status Code:304 Not Modified

helper.js请求头部

代码语言:javascript
复制
Accept:*/*
Accept-Encoding:gzip,deflate,sdch
Accept-Language:en-US,en;q=0.8
Cache-Control:max-age=0
Connection:keep-alive
If-Modified-Since:Tue, 20 Aug 2013 13:08:13 GMT

和响应头

代码语言:javascript
复制
Age:4348
Cache-Control:max-age=604800
Connection:keep-alive

为什么它们是不同的?这是否意味着Cache-Control是错误的?我使用Chrome控制台获取标题。

EN

回答 2

Stack Overflow用户

发布于 2013-08-20 23:12:29

我不认为Cache-Control是错误的,看起来你的内容已经被缓存了。从请求头,我了解到第一个请求是在Tue, 20 Aug 2013 13:08:13 GMT上完成的,因为浏览器会提示服务器“嘿,内容从那时起有变化吗?”。作为回报,服务器使用304 Not Modified报头进行响应,表明内容没有更改,应该再缓存604800秒,直到重新验证它。请记住,缓存是在服务器端完成的。所以,你可能想看看你的服务器对js文件的定义。通常,在部署环境中,我指示我的web服务器为*.js *.png等发送缓存头。在配置web服务器以发送缓存头之后,浏览器将负责其余的工作。在这种情况下,您的浏览器将按预期工作。

您可以查看304响应的RFC2616。您可能还想看看this decent caching tutorial。它应该能理清一些思路。

票数 0
EN

Stack Overflow用户

发布于 2013-08-21 18:25:03

问题出在Chrome上。如果你按下刷新按钮,它会使缓存失效,但如果你在地址栏中按回车,它会从缓存中获取资源。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18338238

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档