强缓存和协商缓存

154 阅读1分钟

什么是缓存

这里的缓存指的是游览器多次访问同一个地址的时候,一些静态资源可以不用去发请求获取,直接从缓存中获取,大大提高打开页面的速度。

强缓存

强缓存资源存放在本地,当我们需要这些资源的时候,只需要查看缓存是否过期就行,如没过期就直接相应200,过期了就返回新的资源。 在请求的Reponse Header中,有2个头部字段:expirescache-control expires是http1.0的,之后可以用cache-control,max-age查看缓存时间。

协商缓存

协商缓存是指每次获取缓存支援时向服务器发送请求,询问服务器缓存是否过期。如没过期就返回304,指缓存可用,就直接读取缓存中的资源文件,文件已更新返回301,302重定向资源路径。 在请求的Reponse Header中,有2个头部字段:更新时间(last-modified)和文件标识(ETag)来记录 某些文件虽然更新时间变化了,但是内容其实并没有变化。所以用 ETag表示文件内容是否变更,相当于一个版本号。

总结

强缓存没过期直接使用,协商缓存询问资源是否可用 强缓存expres,cache-contral 协商缓存last-modified etag 缓存的使用可以大大提高页面加载速度,优化用户体验