博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
静态资源缓存机制之利用HTTP缓存
阅读量:7198 次
发布时间:2019-06-29

本文共 669 字,大约阅读时间需要 2 分钟。

为了合理的加速页面展示,肯定会用到缓存(避免每次资源请求,或者请求返回请求内容),加快页面非首次展示的速度,目前通用的策略是:

缓存入口资源即html文件,其他资源强缓存的时间足够长(几个月或者几年都可以),非入口文件的更新采用更改文件名的方式

这样每次资源的更改,便资源名发生改动(资源内容的MD5),也就是请求新的资源,然后强缓存足够长时间,后面不更新就只在缓存中拿资源即可,都不用每次与服务端建立连接,再传输资源内容。

补充:

  1. 更新缓存历史中,出现过用时间戳的方式,这样其实有一定的更新风险,如下
  • 发生风险的时机在于更新线上资源的时候,同时访问了页面,由于各个资源有依赖关系,如果先发布了引用其他资源的资源,而后才更新依赖的资源,便出现了问题
  • index.html中引入了index.js?t=1,发布资源过程先发布了index.html,同时新的index.html已被用户客户端请求到,然后请求里面的index.js?t=2,而此时如果线上发布还没有发布到index.js(发布也需要时间),这样返回的仍旧是老的index.js?t=1所加载的index.js,即客户端拿到的是老的index.js,如此就出问题提啦!!!
  1. 强缓存(expired, cache-controle),协商缓存(last-modified/If-Modified-Since,Etag/If-None-Match),这部分后面说明....

转载于:https://juejin.im/post/5bd00de1e51d457a1179e46c

你可能感兴趣的文章
Servlet快速入门
查看>>
mysql性能测试工具之sysbench
查看>>
python获取类名函数名、脚本路径
查看>>
Hadoop hive sqoop zookeeper hbase生产环境日志统计应用案例(故障篇)
查看>>
sudo日志文件跟踪
查看>>
游戏开发路线图
查看>>
内存分配方式及常见错误
查看>>
phpcms去掉前台和后台登录验证码
查看>>
批处理:查找指定条件的文件复制到指定的目录中
查看>>
导致失败的8项行为习惯
查看>>
我的友情链接
查看>>
PVS7.6 Write Cache模式 “缓存到RAM并且溢出到硬盘” 环境RAM大小配置建议
查看>>
java 双色球×××小程序
查看>>
Exchange性能调优(下)
查看>>
清理MBR
查看>>
VC++结束进程
查看>>
BGP路径选择次序
查看>>
Shell练习-统计出每个IP的访问量有多少?
查看>>
apache的扩展模块安装
查看>>
CentOS7 64位小型操作系统的前期准备(XShell、网络、YUM源、EPEL源)
查看>>