1.强缓存(本地缓存):(告知浏览器在一定时间内直接从本地缓存获取资源,而无需再次向服务器发起请求,从而提高了网站性能,减少了网络流量)
http1.0:服务器首次返回响应数据给客户端时,会同时发送一个响应数据的具体过期时间,会将资源存储在本地缓存中,并在到期时间之前不再请求该资源,想用时直接从本地缓存中取出使用即可。
http1.1:提供了Cache-control 响应标头,允许服务器更加精确地控制浏览器缓存行为(过期时间,哪些浏览器能直接缓存,公开or私有,可被代理服务器缓存),并且不依赖于客户端和服务器之间的时钟同步
2.弱缓存(协商缓存):(通过判断浏览器想请求的数据在服务器上是否更新,来决定是否返回304 or 响应数据)让服务器和浏览器协商决定是否使用缓存中的资源,从而减少网络流量和提高性能
http1.0:服务器在首次返回请求的数据的同时也会返回一个Last-Modified(修改时间)给客户端浏览器 ,浏览器客户端再次请求相同资源时会携带If-Modified-Since(即:之前服务器返回来的Last-Modified),此时服务器将把If-Modified-Since与自身的Last-Modified进行比较,若Last-Modified时间早于if-Modified-since 则服务器返回304,不返回数据。让浏览器直接从本地缓存中获取。
http1.1:服务器在首次返回请求的数据的同时会返回当前数据对应的一个独有标识ETag,浏览器再次请求相同资源时会返回If-None-Match(即首次返回的ETag),随后服务器将If-None-Match与自身资源的最新ETag进行比较,若值一样,则返回304,不返回资源。让浏览器直接从本地缓存中获取。