1.什么是缓存
没有必要把不需要重新获取一遍的东西重新获取,这就是缓存;js css img需要被缓存,
2.强制缓存
初次请求,如果服务端认为可以被缓存就会返回cache-control和资源,cache-control是在response-header中max-age:可以设置缓存的时间,浏览器再次请求的时候,会先去本地缓存中查找,如果找到的话,就会直接返回资源,如果没有找到就重新向服务器发起请求,如果size中显示的是disk-cache则走的就是本地缓存,反应会非常的快。cache-control的值有哪些:max-age no-cache:指的是不用本地缓存,expires已经被cache-control代替了。是一种老的标准
3.协商缓存
是一个服务端缓存策略指的是服务端可以告诉客户端这次资源没有动,直接使用本地缓存中的资源就可以了,服务器判断客户端资源是否和服务端资源一样,一致则返回304,否则则返回200和最新资源。浏览器自身也有一个缓存,类似强制缓存,浏览器初次请求,服务端会返回资源,和资源标识,浏览器再次请求,带着资源标识,返回304,或者返回资源和新的资源标识。在response header中有两种资源标识 1.last-modified资源最后修改时间,etag资源的唯一标识。下面是图示last-modified工作的流程:
if-modified-since和last-modified名字不一样但值是一样的。下图是etag的工作流程:
http缓存完整如下图所示流程图:
4.刷新页面对缓存的影响
5.https加密方式