前端缓存分为浏览器缓存和cdn缓存。
怎样区分浏览器缓存和cdn缓存
通过Cache-control
public:表示缓存的版本可以被代理服务器或者其他中间服务器识别(浏览器,cdn都能缓存)
private:表示这个文件对不同的用户是不同的。只有用户自己的浏览器能够进行缓存,公共的代理 服务器不允许缓存
no-cache:表示当前的内容不应该被缓存
浏览器缓存:
不仅要知道有什么(现在只停留在这里)还要知道他们的区别和使用场景。资源指的都是服务端的资源。
Expires:
规定资源的有效时间
应用:可以在html中规定
css,图片的有效时间可以在相应头里使用expires规定
缺点:当浏览器和服务器的时间相差很大时,误差就会很大。可以使用Max-age来代替。
Last-modified:
规定资源最近更新的时间,和请求头的if-modified-since对应
A .当第一次向服务器请求资源时,返回状态200,这时Last-modified里面就会保存最近一次修改文件的时间;
B . 当浏览器再次请求该资源时,就会发送一个if-modified-since的请求头,就是为了判断当前的资源是否有变更;
C .如果当前资源没有变更的话,就会返回304状态码,内容为空;如果有变更并且成功,服务器则会返回200状态码,内容为请求的资源。
Etag:
服务器当前资源的唯一标识
过程和Last-modified过程类似,不过与之对应的请求头为if-none-match
Ma