网站建设中页面缓存的作用
操作方法
- 01
对于网站建设来说,页面缓存是安装在网站服务器之前的缓存服务器,用于卸载对于服务器上的静态和动态对象的请求。在网站制作或网站设计中页面缓存还有其它常见名称,如反向代理缓存,反向代理服务器和反向代理。经过慎重考虑,最后还是采用了页面缓存这个术语,因为在网站制作中代理程序还会负责负载平衡或SSL加速,而我们只想专注于缓存服务器对可扩展性的影响。 页面缓存会处理部分或所有请求,直到它存储的页面或数据过期,或服务器收到的请求需要没有被缓存的数据。请求失败叫做缓存未命中,原因可能是缓存满了,没有空间为最新的请求缓存数据,也可能是缓存未满,但请求的频率较低或最近重启过。未命中缓存的请求会被直接传递给web server,并且用该请求回答并填充缓存,从而替换缓存中最近很少使用的数据,或者在空白处写入数据。 在这个过程中,有三个关键点。 第一,应该在web server处理请求之前实现页面缓存,这样网站制作就会得到很大的可扩展性。生成动态内容的web server工作量会大大减少,因为计算过的结果在合适的时间被恰当的缓存了。提供静态内容的web server不需要查询的内容,可以少用一些缓存空间。因此,对于静态网站建设来说,缓存的作用就不那么明显了,因为输出内容本身就没有太大的计算量和负担。 第二,网站建设中要实现缓存必须使用正确的http头,确保对内容和查询结果进行最大化的缓存,并且网站建设中避免通过meta标签刷新页面,如<meta refresh='http://www.lywebs.com’/>(当然是在确保业务正确性的前提下)。 第三点,尽可能加入网站建设标准RFC2616中的另一个http响应头参数,从而最大化内容的可缓存性。这个新的参数是ETag,也就是实体标签,目的是配合If-None-Match有条件地从服务器获得请求。ETag是由服务器端的资源改变了,那么服务器会为它分配一个新的ETag。假设能被浏览器正确地支持,对象和它的ETag标签就会被浏览器缓存,之后浏览器向web server发送的If-None-Match请求都会包含该标签。如果标签匹配,服务器会用http 304 not modified进行响应。如果该标签与服务器上的不一致,服务器会发送更新过的对象以及与之相关的ETag。 在大多数网站建设项目中ETag是可选的,但如果要确保在任何特定的页面或对象的整个网络传输中,页面缓存和代理缓存具有更大的可缓存性,强烈在网站制作中推荐使用ETag。