五、 静态资源
本节课CDN的核心原理将静态页面部署在cdn上, 来提升我们商品详情页的流量能力发挥到极致。
- CDN
- 静态资源 CDN—cache control 响应头
—(1) DNS 用cname 解析到源站
—(2)回源缓存设置
cacahe-control 状态
private
客户端可以缓存
public
客户端和代理端进行缓存
max-age=
缓存内存将在多少秒后失效
no-cache
强制向服务器验证一次
no-store
不可缓存
浏览器刷新:
-
回车刷新或者 a连接: 看cache-control对应的max-age是否有效, 如果有效 fromcache, no-cache 缓存协商逻辑
-
F5刷新: 去掉cache-control中的max-age或者就是把它设置为0
-
crtl + F5 强制刷新: 直接很干脆的去掉cache-contol 强制刷新
静态资源缓存与更新:
-
强制浏览器使用本地缓存(cache-control/expies),不要和服务器进行通讯。但是这种优化问题来了,你不让浏览器发请求资源这个缓存这么更新呢。
a.css
b.css
c.css
想到一个办法, 通过更新页面中的资源路径, 让浏览器自动放弃缓存,加载新的资源。
index.html
上线 把连接地址改了新的版本,更新资源问题。 问题解决了吗? 大公司里面还是比较变态
已发布
待发布
页面引用3个css, 上线只改了其中的a.css, 如果所有的链接都更新版本, 就会导致b.css c.css 全部失效。重新下载。 是不是浪费资源?
问题解决办法------ 必须让url的修改与文件内容 关联, 也就是说, 只要文件内容变化, 才会导致相应的url变化。
什么东西与文件内容相关? 我们会很自然的理所当然联想到一个算法, 数据摘要算法。 对文件摘要信息。 与文件内容一一对应。 这个就可以做个精确到单个文件的缓存控制依据。
数据摘要算法:
密码学中非常重要的一个分支,数据签名和数据完整校验。 不可逆,有的对一个敏感信息进行加密。 数据摘要算法被称为 hash算法 散列算法。