什么是缓存
这里的缓存指的是游览器多次访问同一个地址的时候,一些静态资源可以不用去发请求获取,直接从缓存中获取,大大提高打开页面的速度。
强缓存
强缓存资源存放在本地,当我们需要这些资源的时候,只需要查看缓存是否过期就行,如没过期就直接相应200,过期了就返回新的资源。
在请求的Reponse Header中,有2个头部字段:expires、cache-control
expires是http1.0的,之后可以用cache-control,max-age查看缓存时间。
协商缓存
协商缓存是指每次获取缓存支援时向服务器发送请求,询问服务器缓存是否过期。如没过期就返回304,指缓存可用,就直接读取缓存中的资源文件,文件已更新返回301,302重定向资源路径。
在请求的Reponse Header中,有2个头部字段:更新时间(last-modified)和文件标识(ETag)来记录
某些文件虽然更新时间变化了,但是内容其实并没有变化。所以用 ETag表示文件内容是否变更,相当于一个版本号。
总结
强缓存没过期直接使用,协商缓存询问资源是否可用 强缓存expres,cache-contral 协商缓存last-modified etag 缓存的使用可以大大提高页面加载速度,优化用户体验