缓存服务器介绍
8种缓存框架介绍

8种缓存框架介绍缓存框架是一种用于存储和管理缓存数据的软件工具或库。
它们用于提高应用程序的性能,减少数据库或其他远程资源的访问次数。
在本文中,我们将介绍8种流行的缓存框架,包括Redis、Memcached、Ehcache、Guava Cache、Caffeine、Hazelcast、Infinispan和Apache Geode。
1. Redis: Redis是一个基于内存的缓存框架,提供了丰富的数据结构和灵活的功能,包括缓存、消息队列和数据持久化。
Redis的性能出色,并且具有高可用性和扩展性。
2. Memcached: Memcached是另一个流行的基于内存的缓存框架,广泛用于提高Web应用程序的性能。
它具有简单的架构和易于使用的API。
Memcached可以在多台服务器上进行水平扩展,以提供更高的负载能力。
3. Ehcache: Ehcache是一个Java缓存框架,可以用于将缓存添加到应用程序中。
它具有简单易用的API,并提供了多种缓存策略,如LRU (最近最少使用)和FIFO(先进先出)。
Ehcache还支持磁盘持久化和分布式缓存。
4. Guava Cache: Guava Cache是Google开发的一个轻量级缓存库,可以在本地JVM中实现缓存功能。
它具有内存敏感的淘汰策略和异步加载机制,可以优化资源利用和应用程序响应时间。
5. Caffeine: Caffeine是另一个基于本地内存的缓存库,由Google开发。
它被设计为高性能、无锁的缓存框架,并且具有比Guava Cache更高的吞吐量和更低的延迟。
6. Hazelcast: Hazelcast是一个分布式缓存框架和数据网格,可以在多个服务器上共享缓存数据。
它提供了分布式数据结构和分布式计算功能,并支持高可用性和容错性。
7. Infinispan: Infinispan是另一个开源的分布式缓存框架,用于构建高性能和高可靠性的应用程序。
iis缓存规则

iis缓存规则【原创版】目录1.IIS 缓存的概念和作用2.IIS 缓存规则的分类3.缓存规则的配置方法4.缓存规则的优缺点5.缓存的实际应用案例正文一、IIS 缓存的概念和作用在网站的运行过程中,为了提高网站的访问速度和性能,通常会对网站中的一些静态资源进行缓存。
IIS(Internet Information Services)是微软公司开发的一款 Web 服务器软件,它提供了丰富的缓存功能,可以帮助网站管理员有效提高网站的响应速度。
IIS 缓存是指将网站中的静态资源(如图片、CSS 文件、JavaScript 文件等)临时保存在服务器上,当用户再次访问这些资源时,可以直接从服务器上读取,而不需要重新从原始服务器请求。
这样可以大大减少服务器的负担,提高网站的访问速度。
二、IIS 缓存规则的分类IIS 缓存规则主要分为以下几类:1.文件缓存:将网站中的静态文件(如图片、CSS 文件、JavaScript 文件等)缓存在服务器上,减少服务器的负担。
2.目录缓存:将整个目录下的所有文件都缓存在服务器上,提高目录内文件的访问速度。
3.查询字符串缓存:将带有查询字符串的动态文件缓存在服务器上,提高动态文件的访问速度。
4.碎片缓存:将大型文件分割成多个碎片进行缓存,以提高大文件的访问速度。
三、缓存规则的配置方法要配置 IIS 缓存规则,需要按照以下步骤进行操作:1.打开 IIS 管理器,选择要配置的网站。
2.在右侧栏中,双击“输出缓存”。
3.在“文件缓存”或“目录缓存”中,点击“添加”按钮,添加要缓存的文件或目录。
4.设置缓存的有效期,即缓存资源在服务器上的保存时间。
5.根据需要,设置缓存的依赖文件和查询字符串缓存等选项。
6.点击“确定”按钮,完成缓存规则的配置。
四、缓存规则的优缺点缓存规则的优点:1.提高网站的访问速度,减少服务器负担。
2.降低网站的带宽消耗,节省成本。
3.提高网站的稳定性和可靠性。
缓存规则的缺点:1.缓存规则的配置较为复杂,需要一定的技术水平。
squid缓存方案

squid缓存方案概述:本文将介绍squid缓存方案的基本原理、配置和优化方法,以帮助读者更好地理解和应用该缓存方案。
一、基本原理Squid是一种高性能的Web缓存服务器,通过存储常用的Web资源,以减少资源的下载时间和网络带宽的消耗。
其基本工作原理如下:1. 客户端发起请求:当客户端发起HTTP请求时,请求会被发送到Squid服务器。
2. Squid检查缓存:Squid会检查是否已经缓存了该请求的响应。
3. 缓存命中:如果Squid缓存中存在所需的Web资源,即缓存命中,Squid服务器会立即返回缓存中的响应给客户端。
4. 缓存未命中:如果Squid缓存中不存在所需的Web资源,即缓存未命中,Squid服务器会向源服务器发起请求,并将获取到的响应存储在缓存中,同时返回该响应给客户端。
二、配置Squid缓存方案下面是配置Squid缓存方案的基本步骤:1. 安装Squid服务器:根据不同的操作系统,选择安装适合的Squid版本,并完成安装配置。
2. 配置访问控制列表:通过配置访问控制列表,设置哪些请求可以被缓存以及访问权限的控制。
3. 配置缓存存储位置:设置Squid服务器用于存储缓存内容的位置和大小。
4. 配置Squid的上游代理:如果有其他代理服务器,可以配置Squid将请求发送到该代理服务器进行处理。
5. 配置存储策略:根据实际需求,配置Squid如何存储和管理缓存内容。
三、优化Squid缓存方案为了提升Squid缓存方案的效果和性能,以下是一些优化建议:1. 调整缓存大小:根据实际需求和可用资源,调整缓存的大小以适应更多的缓存内容。
2. 设置缓存时间:通过设置合理的缓存时间,控制缓存内容的过期时间,避免缓存过时的内容。
3. 启用压缩功能:开启Squid的压缩功能,可以减小存储空间的占用和传输数据的流量。
4. 启用SSL支持:如果需要处理HTTPS请求,配置Squid以启用SSL支持,提供更安全的缓存方案。
数据服务器参数

数据服务器参数介绍在今天的大数据时代,数据服务器作为存储和处理大量数据的平台,扮演着至关重要的角色。
不同类型的数据和不同的应用场景,都需要不同的数据服务器参数来支持其存储和处理需求。
本文将为您详细介绍数据服务器参数的相关内容。
数据服务器分类常见的数据服务器类型可以分为以下几类:•文件服务器:主要用于文件存储和管理,支持文件共享和访问控制等功能。
•数据库服务器:主要用于数据库存储和管理,支持数据读取、写入、查询、备份等功能。
•缓存服务器:主要用于提高应用程序的性能,存储基于内存的缓存数据,加速数据读取速度。
•分布式存储服务器:主要用于海量数据的分布式存储和管理,支持数据分片、数据冗余、数据迁移等功能。
数据服务器参数不同类型的数据服务器有着不同的参数设置,下面将分别介绍各种数据服务器参数。
文件服务器参数•存储容量:指文件服务器存储的磁盘容量,一般以GB或TB为单位。
•硬盘类型:常见的硬盘类型包括机械硬盘和固态硬盘,机械硬盘读写速度低,价格便宜,而固态硬盘读写速度快,但价格相对较高。
•文件系统:通过文件系统来管理磁盘空间和文件读写,常见的文件系统包括NTFS、FAT32、EXT4等等。
•传输协议:文件服务器通过一些协议来传输文件,如SMB、FTP、SFTP、WebDAV等。
•安全性设置:文件服务器需要设置读取、写入、执行等权限,以确保数据安全性。
•网络带宽:指文件服务器连接网络时的带宽,影响文件传输速度和并发连接数。
数据库服务器参数•存储容量:指数据库服务器存储的数据量,一般以GB或TB为单位。
•数据库类型:常见的数据库类型有MySQL、Oracle、SQL Server、PostgreSQL等。
•硬盘类型:同文件服务器,常见的硬盘类型包括机械硬盘和固态硬盘。
•数据库引擎:决定了数据库的性能和功能特性,如MyISAM、InnoDB、MongoDB等等。
•数据库缓存:通过缓存技术提高查询速度,如使用Redis等内存数据库。
squid用法 -回复

squid用法-回复Squid是一个流行且功能强大的缓存服务器,常用于提高网络性能和减轻服务器负载。
本文将一步一步回答关于Squid的用法,帮助读者了解如何使用和配置Squid以达到自己的需求。
第一步:安装和配置Squid服务器Squid的安装和配置相对简单,可以在大多数Linux发行版的软件库中找到。
使用适合你的操作系统的包管理器来安装Squid,如apt-get、yum 或zypper。
安装完成后,我们需要进行一些基本的配置。
首先,打开配置文件squid.conf(通常在/etc/squid/目录下),并编辑其中的一些关键配置项。
1. 指定Squid服务器的监听地址和端口。
默认情况下,Squid会监听所有可用的网络接口和端口3128。
如果你想修改监听地址和端口,可以修改http_port配置项。
例如,要将Squid配置为监听本地回环接口127.0.0.1的端口8888,可以将http_port配置为"127.0.0.1:8888"。
2. 配置ACL(Access Control List)。
ACL用于限制对Squid服务器的访问。
你可以使用IP地址、域名、URL等来定义ACL。
例如,要允许192.168.0.0/24网段的主机访问Squid服务器,可以添加一行配置:acl localnet src 192.168.0.0/24。
3. 配置http_access规则。
http_access用于定义允许或拒绝访问Squid 服务器的规则。
你可以基于先前定义的ACL或其他条件来设置规则。
例如,要允许localnet ACL的主机访问Squid服务器,可以添加一行配置:http_access allow localnet。
保存配置文件后,重新启动Squid服务器以使更改生效。
第二步:使用Squid进行缓存配置Squid的核心功能之一是代理缓存。
通过配置Squid缓存,我们可以减少对后端服务器的请求,提高网络性能。
本地域名服务器的工作原理

本地域名服务器的工作原理
本地域名服务器是一种缓存型DNS服务器,它的工作原理如下:
1.查询缓存:当用户通过浏览器输入网址访问网站时,本地域名服务器会首先检查本地缓存中是否已经存在该域名的解析结果。
如果存在,直接返回给用户。
2.递归查询:如果本地缓存中没有对应的解析结果,本地域名服务器会向根域名服务器发送查询请求,询问该域名的顶级域名服务器(例如.com或.cn等)的IP地址。
顶级域名服务器会将下级域名服务器的IP地址返回给本地域名服务器。
3.迭代查询:本地域名服务器会向下一级域名服务器发送查询请求,以此类推直至查询到最终的IP地址。
查询过程中,域名服务器会互相协商交互信息,最终返回域名的IP地址。
4.缓存结果:本地域名服务器将查询结果缓存起来,以便下次用户再次访问相同的域名时可以快速响应查询,提高用户体验。
总的来说,本地域名服务器的工作原理就是先查询缓存,如果没有缓存则递归或迭代查询到最终IP地址,并将结果缓存起来。
这样可以提高DNS查询效率和网络传输速度。
服务器端缓存的应用

服务器端缓存的应用本文主要讨论服务器端缓存的应用。
服务器端缓存是一种常见的优化技术,通过将数据缓存到服务器端内存中,可以提高网站的响应速度和性能。
本文首先介绍了服务器端缓存的基本概念和工作原理,然后探讨了服务器端缓存的优点和局限性,并分析了不同类型的服务器端缓存的应用场景和使用方法。
最后,本文总结了服务器端缓存的应用价值和未来发展方向。
一、服务器端缓存的基本概念和工作原理服务器端缓存是将数据缓存到服务器端内存中,以提高数据访问和处理的速度的技术。
服务器端缓存常用于动态网站的优化,比如电商网站、社交网络等。
服务器端缓存的基本流程如下:1.客户端发送请求至服务器;2.服务器接收请求,并检查缓存中是否存在该数据;3.如果缓存中存在请求的数据,则直接返回缓存中的数据给客户端;4.如果缓存中不存在请求的数据,则需要从数据库或其他存储介质中获取数据,并将其缓存到服务器端内存中,然后再将其返回给客户端;5.客户端接收到数据并进行处理。
服务器端缓存有两种方式:文件缓存和内存缓存。
文件缓存是将数据存储在文件中,然后在需要访问时直接读取文件内容并返回数据。
这种方式的优点是可以持久化存储数据,缺点是读取文件内容相对较慢。
内存缓存是将数据存储在内存中,以提高数据访问和处理的速度。
这种方式的优点是读取速度较快,缺点是内存有限,存储的数据量有限。
二、服务器端缓存的优点和局限性服务器端缓存的优点主要包括提高网站的响应速度和性能、减轻数据库负担、提高用户体验等。
服务器端缓存可以缓解网站访问量增加带来的服务器负担,提高网站响应速度和性能。
服务器端缓存还可以减轻数据库负担,降低数据库的响应时间,提高数据的读写效率。
此外,服务器端缓存可以提高用户体验,用户访问网站时,会先从缓存中获取数据,而不是从数据库中获取,这样可以降低用户等待的时间,提高用户满意度。
但是,服务器端缓存也存在一些局限性。
首先是缓存数据可能过时,当数据更新后,缓存中的数据没有更新,就会导致数据不一致的问题。
天翼云分布式缓存服务Memcache介绍

天翼云分布式缓存服务Memcache介绍MemCache是一套高性能分布式的高速缓存系统,用于动态Web应用以减轻数据库负载,由LiveJournal的Brad Fitzpatrick开发。
目前被许多网站使用以提升网站的访问速度,尤其对于一些大型的、需要频繁访问数据库的网站访问速度提升效果十分显著。
这是一套开放源代码软件,以BSD license授权发布。
MemCache通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高了网站访问的速度。
MemCache是一个存储键值对的HashMap,在内存中对任意的数据(比如字符串、对象等)所使用的key-value存储,数据可以来自数据库调用、API调用,或者页面渲染的结果。
MemCache设计理念就是小而强大,它简单的设计促进了快速部署、易于开发并解决面对大规模的数据缓存的许多难题,而所开放的API使得MemCache能用于Java、C/C++/C#、Perl、Python、PHP、Ruby等大部分流行的程序语言。
MemCache工作原理MemCache采用C/S架构,在服务器端启动后,以守护程序的方式,监听客户端的请求。
启动时可以指定监听的IP(服务器的内网ip/外网ip)、端口号(所以做分布式测试时,一台服务器上可以启动多个不同端口号的MemCached进程)、使用的内存大小等关键参数。
一旦启动,服务就会一直处于可用状态。
为了提高性能,MemCache缓存的数据全部存储在MemCache 管理的内存中,所以重启服务器之后缓存数据会清空,不支持持久化。
MemCache内存管理内存结构每个slab_class里面包含若干个slab。
每个slab里面包含若干个page,page的默认大小是1M。
每个page里面包含若干个chunk,chunk是数据的实际存放单位,每个slab 里面的chunk大小相同内存分配方式Memcached使用slab allocation机制来分配和管理内存。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
什么是缓存服务器无论企业有多大,Web缓存都有助于优化性能和节省带宽。
而且如果选择了正确的缓存解决方案,它可以随着企业网络的增长而扩大,而无需进行昂贵且耗时的重建。
Web缓存提供了比将访问对象放在Internet Web服务器上更好的方法,它将需要频繁访问的Web页面和对象保存在离用户更近的系统中。
当再次访问这些对象的时候加快了速度。
几年以前,理论是超高带宽的Internet连接会使Web缓存毫无用处,但是结果并非如此。
即使最快的速率达到30-45Mbps的光纤Internet连接和速度在100 Mbps到1 Gbps速率的局域网相比仍然很慢,所以性能依旧是一个问题。
除此之外,缓存提高了可用性,因为即使托管的Web服务器停机或者由于网络问题而不可达时,缓存的对象拷贝仍然可以访问。
如果企业根据流量付费,缓存还可以降低Internet连通性的费用。
即使是小公司,缓存也会有利,而且好的缓存解决方案将随着企业级别升级。
[1]编辑本段缓存概念这是两种主要的Web缓存:直接缓存,将用户频繁访问的来自Internet服务器的Web对象的拷贝保存在企业本地网络中。
反向缓存,企业内部Web服务器的Web对象的拷贝保存在企业网络边缘的代理服务器上以提高外界访问企业站点的性能。
Web缓存可以根据不同等级进行配置:本地缓存:将Web对象缓存的拷贝保存在本地计算机中。
大多数流行的Web浏览器默认情况下保留一个先前访问对象的缓存。
例如,Internet Explorer称之为“临时Internet 文件”。
本地缓存拷贝只是在用户频繁地从同一台机器访问页面时有用。
代理缓存:代理服务器是为公司内的多个用户/客户计算机缓存Web对象的单独机器。
它们是位于客户端和托管的Web服务器之间的计算机,而且它们比本地缓存效率更高,因为在企业本地网络中的任何用户或计算机访问某个Web对象时,缓存拷贝对想访问该对象的任何其他用户/计算机是可用的,无需到Internet服务器上再次下载它。
代理缓存可以在网络边缘与防火墙结合使用。
微软的ISA Server和BlueCoat的工具一样,既包括防火墙也包括缓存代理服务器。
缓存服务器也可以是单独的机器,运行免费的缓存软件或商业产品,例如:Linux版的Squid免费缓存代理MOWS基于Java分布式web和缓存服务器Vicomsoft RapidCache Server for Windows或MacintoshWinProxy for Windows可升级的缓存解决方案随着公司的扩大,单一的Web缓存服务器可能无法处理所有的通信或存储足够的Web 对象。
在这种情况下,可以扩展缓存解决方案以建立一个缓存阵列——一组共同工作以便在组内分配缓存负载的缓存代理服务器。
万一某个缓存服务器停机,还提供缺省的容量。
要在阵列中操作,缓存服务器必须能够彼此使用协议进行通信,例如:WCCP(Web缓存协调协议),Cisco缓存产品以及诸如Squid这样的开源代理使用。
ICP(Internet缓存协议),被Squid和BlueCoat支持。
CARP(缓存阵列路由协议),被ISA Server Enterprise Edition用来管理缓存服务器阵列的失效转移和负载平衡。
CARP能够支持几乎无限的线性扩展以满足快速增长型企业的需求。
当向某个阵列中添加或移除一台服务器时,CARP自动调整并再指定URL以有效地分布负载。
缓存阵列能够以等级的或分布式的架构排列。
在分布式缓存中,阵列中所有代理服务器处在一个“平等地位”而且负载在它们之间进行分配。
在分等级的缓存中,代理以链式进行配置,它们处在不同的等级,所以服务器或阵列连接到其它离Internet更近的服务器或阵列(离Internet最近的那些服务器或阵列被看作“上游的”,那些最远的被看作“下游的”)。
这样,缓存内容会尽可能地靠近需要它的用户。
阵列是高度可升级的,因为可以向阵列添加服务器,或向分等级的架构增加阵列等级,而无需扰乱目前的缓存解决方案。
另一个可扩展性问题是使用缓存减少分支机构网络带宽的能力。
分支机构代理可能没有直接连接到Internet,但是可以使用拨号连接或办公室到办公室的WAN连接以便从总公司的上游代理服务器上请求Web对象。
另一个选择是为需要向消费者提供基于Web的应用,可使用诸如由Akamai提供的服务。
他们的Web Application Accelerator服务通过下列方法优化性能:向他们的边缘服务器动态映射请求,并监视Internet路由以便在最快和最可靠的路由上传输。
利用压缩技术和预取技术(pre-fetching)以最小化带宽使用率。
用安全套接层(SSL)保护Web传输。
根据企业指定的规则保存Web内容什么是Web缓存Web缓存是指一个Web资源(如html页面,图片,js,数据等)存在于Web服务器和客户端(浏览器)之间的副本。
缓存会根据进来的请求保存输出内容的副本;当下一个请求来到的时候,如果是相同的URL,缓存会根据缓存机制决定是直接使用副本响应访问请求,还是向源服务器再次发送请求。
比较常见的就是浏览器会缓存访问过网站的网页,当再次访问这个URL地址的时候,如果网页没有更新,就不会再次下载网页,而是直接使用本地缓存的网页。
只有当网站明确标识资源已经更新,浏览器才会再次下载网页。
Web缓存的作用使用Web缓存的作用其实是非常显而易见的:减少网络带宽消耗:无论对于网站运营者或者用户,带宽都代表着金钱,过多的带宽消耗,只会便宜了网络运营商。
当Web缓存副本被使用时,只会产生极小的网络流量,可以有效的降低运营成本。
降低服务器压力:给网络资源设定有效期之后,用户可以重复使用本地的缓存,减少对源服务器的请求,间接降低服务器的压力。
同时,搜索引擎的爬虫机器人也能根据过期机制降低爬取的频率,也能有效降低服务器的压力。
减少网络延迟,加快页面打开速度:带宽对于个人网站运营者来说是十分重要,而对于大型的互联网公司来说,可能有时因为钱多而真的不在乎。
那Web缓存还有作用吗?答案是肯定的,对于最终用户,缓存的使用能够明显加快页面打开速度,达到更好的体验。
Web缓存的类型在Web应用领域,Web缓存大致可以分为以下几种类型:数据库数据缓存:Web应用,特别是SNS类型的应用,往往关系比较复杂,数据库表繁多,如果频繁进行数据库查询,很容易导致数据库不堪重荷。
为了提供查询的性能,会将查询后的数据放到内存中进行缓存,下次查询时,直接从内存缓存直接返回,提供响应效率。
比如常用的缓存方案有memcached等。
浏览器端缓存:浏览器缓存根据一套与服务器约定的规则进行工作,在同一个会话过程中会检查一次并确定缓存的副本足够新。
如果你浏览过程中,比如前进或后退,访问到同一个图片,这些图片可以从浏览器缓存中调出而即时显现。
服务器端缓存代理服务器缓存:代理服务器是浏览器和源服务器之间的中间服务器,浏览器先向这个中间服务器发起Web请求,经过处理后(比如权限验证,缓存匹配等),再将请求转发到源服务器。
代理服务器缓存的运作原理跟浏览器的运作原理差不多,只是规模更大。
可以把它理解为一个共享缓存,不只为一个用户服务,一般为大量用户提供服务,因此在减少相应时间和带宽使用方面很有效,同一个副本会被重用多次。
常见代理服务器缓存解决方案有Squid 等,这里不再详述。
CDN缓存:CDN(Content delivery networks)缓存,也叫网关缓存、反向代理缓存。
CDN缓存一般是由网站管理员自己部署,为了让他们的网站更容易扩展并获得更好的性能。
浏览器先向CDN网关发起Web请求,网关服务器后面对应着一台或多台负载均衡源服务器,会根据它们的负载请求,动态将请求转发到合适的源服务器上。
虽然这种架构负载均衡源服务器之间的缓存没法共享,但却拥有更好的处扩展性。
从浏览器角度来看,整个CDN就是一个源服务器,从这个层面来说,本文讨论浏览器和服务器之间的缓存机制,在这种架构下同样适用。
Web应用层缓存:应用层缓存指的是从代码层面上,通过代码逻辑和缓存策略,实现对数据,页面,图片等资源的缓存,可以根据实际情况选择将数据存在文件系统或者内存中,减少数据库查询或者读写瓶颈,提高响应效率。
HTTP web缓存策略1. web缓存基本作用:HTTP协议中设计web缓存主要有以下几个作用:首先缓存能减少冗余数据的传输,可以减少网络成本; 其次缓存能减少客户端对远端server的依赖,从而提高了客户端装载页面的速度。
下面着重阐述的是缓存的一些基本知识以及缓存策略给HTTP用户请求带来的改变。
2. 缓存的基本知识:(1) 命中(hit)以及缺失(miss)衡量缓存所带来的性能影响可以采用命中率和非命中率两个参数。
顾名思义,命中指的是缓存直接响应客户端的请求,缺失指的是缓存不能响应到客户端的请求,然后将请求转发给远端server。
通俗地讲,前者是缓存直接将结果返回给server,而后者是缓存中不存在,客户端将直接从远端获取结果。
(2)重验证(revalidation)一般情况下,缓冲中的内容均存在一定的时效性,因此需要经常对缓存中的内容做有效性检查(fressness check),也叫“重验证”。
触发对缓存中的内容进行重验证的方法很多,后面章节将会介绍到。
上图比较形象地描述了缓存命中、缺失以及重验证三种情形。
值得注意的是,重验证并不表示缓存中的内容一定是过时的(stale),它仅仅表示重验证触发条件收到,需要对缓存内容做重验证,仅此而已!(3)缓存的种类:缓存一般可以分成个人缓存(或者私有缓存)和共享缓存(“共有缓存”两大类),比如在个人PC机上的缓存一般称为私有缓存,而对于门户网站,它们为了快速地响应各地用户请求,都会在CDN网络上建设自己的公共代理缓存(public proxy cache).下面章节将主要讲解有关缓存的两个关键操作:更新和控制(指如何通过传递Header 来控制缓存)缓存。
3. 更新(keep copies fresh)首先要明白的是更新操作主要是为了保证缓存中的内容与远端server中的内容保持一致,HTTP协议规范中规定了两种途径:定义文档过期日期以及执行重验证。
◆文档过期时间(Document Expire)针对文档过期时间,HTTP协议中规定了两种方式:第一种是在远端server为所回复的每个文档附上”Expires:”HTTP头部;另外一种是为所回复的每个文档附上缓存控制头部”Cache-Control: max-age= ”.HeaderdescriptionCache-Control: max-ageThe max-age value defines the maximum age of the document—the maximum legal elapsed time (in seconds) from when a document is first generated to when it can no longer be considered fresh enough to serveExpiresSpecifies an absolute expiration date. If the expiration date is in the past, the document is no longer fresh.上图是两种方式的对比,值得注意的是,“Cache-Control: max-age=”头部是在HTTP/1.1中规定的,而“Expires”则是在HTTP/1.0规定的,另外在RFC2616中规定,客户端在处理二者时,“Cache-Control:max-age=”头部具有更高的优先级。