赞
踩
浏览器缓存(Browser Caching)是为了节约网络的资源加速浏览,浏览器在用户磁盘上对最近请求过的文档进行存储,当访问者再次请求这个页面时,浏览器就可以从本地磁盘显示文档,这样就可以加速页面的阅览。
1. 减少了冗余的数据传送,减少带宽
2. 减少了服务器的负担,大大提升了网站的性能
3. 加快了客户端加载网页的速度
强制缓存:不会向服务器发送请求,直接从缓存中读取资源
# 设置以秒为单位的绝对过期时间
expires: Mon, 26 Jun 2023 14:00:56 GMT
cache-control: max-age=2592000
值 | 描述 |
---|---|
no-cache | 不会询问浏览器缓存,直接向浏览器发送请求对比过期时间 (协商缓存验证) |
no-store | 禁止浏览器缓存数据,直接向服务器发送请求获取数据 |
private(默认值) | 只能被终端用户缓存,不允许CDN等中间缓存服务器对齐缓存 |
public | 可以被所有的用户缓存,包括终端用户和CDN等中间代理器 |
max-age=<seconds> | 缓存存储的最大周期 |
max-stale[=<seconds>] | 客户端愿意接收一个已经过期的资源 |
协商缓存:在使用本地缓存之前,需要向服务器发送请求,可以解决强制缓存的情况下,资源不更新的问题
# no-cache 不强制缓存
cache-control: no-cache
etag
或last-modified
属性。If-Modified-Since
字段,将上次请求服务器资源的最后修改时间传到服务器,与被请求资源的最后修改时间进行比对。If-Modified-Since
的值,说明资源又被改动过,则响应整片资源内容,返回状态码200
。If-Modified-Since
,说明资源无新修改,则响应HTTP 304
,告知浏览器继续使用所保存的缓存数据。不该请求,还会请求。编辑了文件,文件内容没有变,但是服务器确认为我们改动了文件,所以重新设置了缓存时间,当做新请求返回给浏览器。
该请求,反而没有请求。修改文件速度很快,快过 If-Modified-Since 字段时间差的检测,文件虽然改动了,但是并没有重新生成新的资源。
由于上述 Last-Modified 字段存在的缺陷,所以在 HTTP / 1.1 新增 etag(标识字符串) 我们对资源进行内容编码,只要内容被改变,这个编码就不同。
If-None-Match
字段。与被请求资源的唯一标识进行比对200
;HTTP 304
,告知浏览器继续使用所保存的缓存数据。Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。