强缓存: 当再次访问同一页面时,直接从本地读取缓存。
协商缓存:当再次访问同一页面时,先向服务器发起请求,询问缓存是否过期,如果不过期就从本地读取缓存,否则再次向服务器发送资源请求。
补充: 走协商缓存和强缓存是由后端决定的,在第一次向后端请求资源时,后端如果决定是强缓存 ,会在返回头增加 Cache-Control 字段 Cache-Control:max-age=31536000 (ms)。
协商缓存通常不会返回 Cache-Control ,或者返回 Cache-Control : no-cache: 不使用强缓存(但仍会使用协商缓存)。
- 如果没有变化则返回304,告诉浏览器继续使用缓存(不返回资源文件)。
- 如果发生变化,则返回200和最新的资源文件给浏览器使用。
--------
总结:在强缓存里,是否使用缓存是由浏览器来确定的,而协商缓存则是由服务器来告诉浏览器是否使用缓存资源。
tip:缓存存储时,会有一些参数,详情请看文档。
详细参考: