内容更新机制

1.如果HTTP响应头信息告诉Cache不要缓存,那么Cache就不会缓存相应内容

2.如果对某内容的请求信息是需要谁或者安全加密的,Cache也不会缓存相应内容

3.如果在HTTP响应中没有ETag或者Last-Modified头信息,Cache会认为缺乏直接的更新度信息,默认该内容不可缓存

4.一个缓存的副本如果含有以下信息,Cache会认为它是足够新的,会直接从缓存中送出,而不会向源服务发送请求:
4.1:含有完整的过期时间和寿命控制的头信息,并且内容仍在生存期内

4.2:浏览器已经使用过这个缓存副本,并且在同一个会话中已经检查过内容的新鲜度 

5.如果缓存的内容副本已经旧了,Cache将向源站服务器请求检验,用于确定是否可以继续使用当前副本继续服务.如果经校验后发现副本的原件没有变化,Cache会避免从源站服务器重新获取副本

通常html,图片,css,xml,js,音频,流媒体等静态资源会被缓存,而动态地址,asp,aspx,py,jsp,php等动态资源不被缓存


如果相让自己的网站缓存友好,则需注意:
1.尽量保持内容URL稳定:如果在不同的页面上提供相同的内容,应该使用相同的URL

2.使用公共库存放每页都引用的元素

3.对于不经常改变的图片和其他页面元素,给Cache-Control: max-age属性设置一个较长的过期时间,这样可以尽可能多地利用Cache的缓存

4.对定期更新的内容设置一个Cache可识别的Cache-Control: max-age过期时间

5.只在必要的时间使用Cookie,Cookie是非常难被缓存的,如果使用Cookie,尽量控制在动态网页上

6.尽量避免使用POST,除非万不得已.POST模式的返回内容通常不会被Cache缓存,使用GET模式会好很多

猜你喜欢

转载自xiangjie88.iteye.com/blog/2223894