(1)
ETag的工作原理就是让服务器对向客户端发送的数据添加一个标识符,当页面内容发生变化时标识符也会随着变化。客户端向服务器发起请求的时候带上这个标识符,如果标识符没有变化就说明页面内容没有变化。这时候服务器就可以给客户端返回一个304状态码并断开连接,这样就不用从服务器上把庞大的页面数据再次发送给客户端了。
(2)
LastModified、
LastModified的标识符是一个时间,而ETag的标识符是任意的。其实ETag可以取代LastModified,不过杀鸡何必用牛刀呢?如果只是判断一个文件的最后修改时间,还是用LastModified比较标准,语义上也会比较通顺。
http://www.web-tinker.com/article/20080.html
(3)
Cache缓存是让客户端在一段时间内不向服务器发起请求而使用缓存的数据,这样连HTTP连接都省了,甚至就算断网的情况都能访问到缓存的数据。
动态页面不推荐用Cache缓存,因为动态页面更新的比较频繁。如果使用Cache缓存会导致用户无法看到最新的信息,建议使用ETag。而对于静态资源,比如JS、CSS这些东西就可以稍微缓存久一些,因为它们的内容很少有变动。而静态图片这些基本上永远也不会改的东西可以设置很长很长的缓存。另外,ETag和Cache可以同时使用,我也推荐这样用。同时设置ETag和Cache时浏览器会先判断Cache,只有缓存失效了才会访问服务器请求最新数据。这时候如果ETag没有改变,服务器还可以返回304和继续设置Cache缓存来节省资源。
http://www.web-tinker.com/article/20077.html
原文地址:http://www.cnblogs.com/shengxinking/p/3853370.html