WebCache标签详解(空格分隔):Cache缓存用于性能优化请求更快:通过在本地浏览器或最近的缓存服务器(如CDN)缓存内容,在不影响网站交互的前提下,可以大大加快网站加载速度。减轻服务器压力:在用户大量并发请求的情况下,服务器的性能是有限的。这时候在网络的多个节点上放置一些静态资源,可以平衡负载,减轻服务器的压力。缓存方式服务器端缓存,如CDN客户端缓存,即浏览器缓存,可以通过缓存、清单等方式实现。浏览器缓存分为两种,强制缓存和协商缓存。判断是否命中强缓存。如果命中,浏览器直接从自己的缓存中读取资源,而不向服务器发送请求。比如一个css文件,如果css文件的缓存配置在浏览器加载所在网页时命中了强缓存,那么浏览器会直接从缓存中加载css,甚至不会发送请求到网页所在的服务器。协商缓存:当强缓存没有命中时,浏览器肯定会向服务器发送请求,通过服务器根据资源的其他一些http头来验证资源是否命中协商缓存。如果协商缓存命中,服务器会返回请求(304),但是不会返回这个资源的数据,而是告诉客户端直接从缓存中加载这个资源,所以浏览器会从自己加载这个资源缓存;如果请求未命中,则将资源返回给客户端,并更新本地缓存数据(200)。强制缓存不向服务器发送请求,协商缓存向服务器发送请求。Mandatorycaching:E??xpires,Cache-controlNegotiationCaching:Last-Modified/If-Modified-Since,Etag/If-None-MatchMandatorycachingcontrolExpires,HTTP/1.0提出的表示资源过期时间的header,描述了一个绝对时间,由服务器返回,用GMT格式的字符串表示,如:Expires:Thu,31Dec201623:55:55GMT,Expires是一个比较老的强缓存管理头,因为它是返回的绝对时间服务器时间,所以有问题。如果客户端的时间和服务端的时间相差很大(比如时钟不同步,或者跨时区),那么误差就会非常大,所以从HTTP/1.1版本开始,使用Cache-对照:max-age=seconds备选。Cache-Control描述了一个相对时间。在执行缓存命中时,会使用客户端时间进行判断,所以相比Expires,Cache-Control的缓存管理更有效。读取缓存数据的条件:上次缓存时间(客户端)+max-age<当前时间(客户端)。Cache-Control值的含义:每条消息中指示的含义如下:no-cache表示请求或响应消息不能被缓存。该选项不代表可以设置“无缓存”,需要与服务器确认。max-age表示客户端可以收到生命周期不超过指定时间(以秒为单位)的响应。Lastcachedtime(client's)+max-age(64200s)
