博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
什么是页面缓存
阅读量:5012 次
发布时间:2019-06-12

本文共 1111 字,大约阅读时间需要 3 分钟。

    对于网站建设来说,页面缓存是安装在网站服务器之前的缓存服务器,用于卸载对于服务器上的静态和动态对象的请求。在或建站软件中页面缓存还有其它常见名称,如反向代理缓存,反向代理服务器和反向代理。经过慎重考虑,最后还是采用了页面缓存这个术语,因为在建站系统中代理程序还会负责负载平衡或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。最后再次建议所有人员都重视页面缓存,利用好缓存将节省大量的硬件投入成本。

转载于:https://www.cnblogs.com/iNc0ming/p/3441999.html

你可能感兴趣的文章
Java进阶知识点6:并发容器背后的设计理念 - 锁分段、写时复制和弱一致性
查看>>
Makefile ===> Makefile 快速学习
查看>>
face detection[HR]
查看>>
java性能调优工具
查看>>
C# 其他的Url 文件的路径转化为二进制流
查看>>
cmake使用
查看>>
ios7上隐藏status bar
查看>>
构造方法和全局变量的关系
查看>>
python3基础05(有关日期的使用1)
查看>>
ArrayList的使用方法
查看>>
面向对象高级
查看>>
Bitwise And Queries
查看>>
打印Ibatis最终的SQL语句
查看>>
HBase之八--(3):Hbase 布隆过滤器BloomFilter介绍
查看>>
oracle连接问题ORA-00604,ORA-12705
查看>>
NOI 2019 退役记
查看>>
java的几个日志框架log4j、logback、common-logging
查看>>
Java从零开始学十三(封装)
查看>>
Python2和Python3中的rang()不同之点
查看>>
MySQL的外键,修改表,基本数据类型,表级别操作,其他(条件,通配符,分页,排序,分组,联合,连表操作)...
查看>>