关于 浏览器 Cache-Control 不能设置问题。


首先看一次 清空了浏览器缓存 + 强制刷新 的记录


代码是这样的

<!DOCTYPE html>
<html>
    <head>
        <title>test</title>
         
        <meta http-equiv="Cache-Control" content="max-age=60000" />
        
        <link rel="stylesheet" href="mo.css">
        <script type="text/javascript" src="we.js"></script>
        <script type="text/javascript" src="mo.js"></script>
    </head>
    <body>
        <h1 id="reh">login...</h1>
        <p><img src="logo.jpg" /></p>
    </body>
</html>

这个 meta 标签设置无效,明明是设置了max-age=60000的,但为什么发送请求时就变成了
no-cache 了
使用chrom 浏览器
这两个也没勾上


而且发现个奇怪问题是我地址栏回车时是这样的

有没人解释一下什么回事?我要做到的最终目的是缓存资源文件,就是 js ,css ,img直接本地缓存取而不发请求 304 再在本地取,就是chrome 的 200 (form cache);


首先,缓存问题依靠html的meta标签解决是不靠谱的,一般大型网站都依靠nginx server在 http头中对静态资源设置缓存。
而影响缓存的http头有好几个,尽管http 1.1协议之后,从协议本身的规范的角度可以认为 只要有cache-control这个头存在,pragma expires就无效了,但你不能相信所有浏览器所有版本都完全按照标准进行了实现,所以,比较职业的做法是把所有该下发的http头都派发过去,更保险一些。
在你的截图中,我看到response headers里缺少expires字段,并且你虽然cache-control给了个3600(注意这里的单位是second 相当于缓存时间是1小时,考虑到服务器时间与客户端机器的时间有可能存在一些差异,如果真希望缓存的静态资源,不建议给这么小的max-age),然而你设置了pragma:no-cache,这显然是你的apache服务器配置的问题,我估计你的conf文件是从网上随便找了一份,设置缓存时忘记去掉这一行了,pragma建议去掉,当然也可以查一下文档这个头该怎么设置缓存值,设一个长一些的。
另外,我还注意到,你在浏览器中直接以127.0.0.1的ip地址进行访问,依靠chrome内核(准确说叫blink,google基于webkit项目切出的一个分支,目前作为chrome浏览器内核)解析网页的所有浏览器,在这种直接访问ip地址的场景下都会表现出一些诡异的情况,有时是缓存与线上不一样,有时是跨域的CORS策略会与线上不同,所以你再本地做实验 最好绑个host,也不要直接localhost访问。

最后,再科普一个知识,chrome浏览器为了优化页面加载速度,做了非常复杂的缓存和预加载策略,当你点F5(win系统)或command-R(mac系统)刷新浏览器时,通常是穿透缓存的,而当你在地址栏里输入后直接回车时,往往会被缓存cache住。说的再深一点,当你在浏览器地址栏里输入地址时,出现那个下拉提示菜单,如果你选择了菜单中的一个提示选项而不是自己手动敲完整个地址url的话,实际上你还没点回车时 这个http请求就已经发出去了,所以有时会发现 在地址栏里直接选自己之前访问过的页面时 请求速度特别快,实际上是chrome的预加载机制。

缓存是比较复杂的问题,与之相关的任何一个环节设置错误都可能导致结果与预期相左,希望能帮到你。



相关阅读:
transform属性在这种情况下为什么不生效啊?
怎样通过$.ajax跨域请求斗鱼TV API 取得json数据
cef3 cookie分离
标签添加成功了为什么不显示呢?
PHP水印合成中文乱码怎么解?网上教程没用
chrome下disabled的input不能选中和复制, 有解决办法吗
ps切图出现细线
canvas绘制的时钟,出现多余的黑色线条是怎么回事??
关于页面同时异步请求两个js,渲染页面等待如何优化
关于 promise 的问题:请问在这个短小函数里 then 会被执行几遍?
Vue嵌套路由失效?
php中static和abstractor有啥区别?
如何删除选中的cell中对应的行?
js弹窗验证失败
关于STUN协议中属性的一点问题
vuejs 折叠面板的展开收缩动画应该怎么实现?用vue自带的过渡效果还是css3?
关于表单页面提交信息的判断
extjs3.2 panel组件能否添加focus和blur事件
如何将全局变量i变成函数的局部变量?
vue应用嵌在微信里 ,点击微信右上角的分享其中一个页面的链接 ,怎样让用户点开来就是当前页面呢?



快速导航
PHP MySQL HTML CSS JavaScript MSSQL AJAX .NET JSP Linux Mac ASP 服务器 SQL jQuery C# C++ java Android IOS oracle MongoDB SQLite wamp 交通频道 作文范文 我谈“父母之命”作文400字 20则职场哲理小故事 向上看向下看作文 爱与被爱,爱的人与被爱的人.... 也许这样,你会更轻松作文800字 我读了第一课的感受 朱爷爷的长寿秘诀 书香家庭作文500字 我们的约定唯美温馨爱情句子带图片 我还不懂得感恩 房地产抵押借款合同 傅家村桃园参观记 没有签劳动合同 2015规划局“三严三实”专题教育工作计划 李白《忆东山二首·其一》 打水痘疫苗 全市组工干部培训班学习心得体会二十 同是天涯人,相逢又相识 观《南京大屠杀》有感900字 爱,是永不止息的 暑假《千年一叹》读后感 自力更生,艰苦奋斗作文700字 保安工作管理制度实施细则 水利局副局长在全市中小河流治理规划编制工作会议上的讲话 求职信范文700字 等待梦里花开作文450字 《我最爱的风景》讲义 朋友(二)作文300字 梦醒心碎作文450字 我最喜欢的一种食物 2015会计专业实习总结 2012大学军训广播稿 是谁温暖了春天 几重暗香落雨中 昨日的英雄 张小菊传 高中高三作文1200字:三秋夜泪 小学六年级作文700字:我的母亲 2015年中考英语写作素材:名言类 酒店前台接待年终工作总结 《窗外,有一片海》 烦人的心 化暖 公司江西萍乡市场总结 中专生职业生涯规划范本 吃苦耐劳的手 2015护士试用期工作总结 合同法之其他规定 我们班的激励卡 为了玫瑰,给刺浇水

Copyright © 2016 phpStudy |