前述
在获取到服务器上的资源后, 浏览器和缓存服务器会根据其缓存的策略对资源进行缓存,在下一次访问该资源时,可以直接从本地或者缓存服务器上获取。
缓存可以分为强缓存和协商缓存两种。
强缓存
在使用强缓存时,浏览器会根据首部参数如max-age,来判断该缓存是否已过期,如果没有过期,则直接使用该缓存,否则,请求服务器上的资源。
主要的首部字段有:Cache-Control 和 Expires
协商缓存
协商缓存则是,在请求服务器时,会使用 Etag和If-None-Match、Last-Modified和If-Modified-Since等字段。服务器会根据其资源的Etag值,是否变化,返回结果。如果该资源未修改,则返回304,告知浏览器,“这个资源没有修改,你可以用本地缓存”,否则,返回该资源。