为了能够给用户一个良好的上网体验,大部分的网页和浏览器都配置了预加载以及缓存功能。
今天湖北电脑培训http://www.kmbdqn.cn/就通过案例分析来了解一下,关于web缓存的基本定义与类型介绍。
Web缓存是什么?为什么要使用缓存?Web缓存处于服务器(也称为源服务器)和客户端之间,监视请求并保存响应的副本,比如HTML页面,图片和文件等(统称为表述)。
如果之后有对同一个URL的新请求,它会使用自己保存的内容来响应,而不是再次请求源服务器来获取内容。
使用Web缓存主要有下面两个原因:减少延迟——因为响应请求的内容来自缓存(距客户端较近)而不是源服务器,它会花较少的时间来获得表述并将他们呈现出来。
这使得Web看起来具有良好的响应速度。
减少网络传输——由于复用了表述,它可以减少客户端使用的带宽总量。
如果客户需要为流量付费,这就意味着省钱。
缓存会降低对带宽的要求,也降低处理难度。
Web缓存的种类浏览器缓存你在查看现代Web浏览器(比如IE、Safari或Mazilla)选项的时候,可能会看到“缓存”设置。
这个选项让你配置一部分硬盘空间来保存你看过的表述。
浏览器缓存的规则相当简单。
它通常会在一次会话(即当前浏览器中一次调用)中检查表述是否新。
这个缓存在用户使用“回退”按钮或者点击一个浏览过的链接时会特别有用。
而且,如果你在网站的各个页面中浏览相同的图片,他们几乎能马上从缓存中加载出来。
代理缓存Web代理缓存的工作原理相同,但规模更大。
代理以同样的方式为成百上千的用户服务大公司和ISP常常把代码缓存建立在防火墙之上,也可能是以独立设备的形式存在(也称为中间设备)。
代理缓存即不是客户端的一部分,也不是服务器的一部分,而是在网络之外,必须以某种方式把请求路由过去。
其中一种方式是手工修改浏览器代理设备,指定要使用的代码另一种方式是拦截。
拦截式代理会根据其自身的基础网络重定向Web请求,不需要在客户端配置,客户端甚至不知道它们的存在。
代理缓存是一种共享缓存,通常不只是一个用户,而是大量用户在使用代理缓存。
正因为如此,他们特别擅长降低延迟和网络传输量。
这是因为众人都需要的表述会被多次重复使用。
网关缓存网关缓存又名“反向代理缓存”或“替代缓存”。
网关缓存也是一种中介,它他们不是由网络管理员部署以节约带宽,而是由网站管理员自己部署,使其站点更具伸缩性、可靠性以及拥有更好的性能。
很多方法都可以把请求路由到网关缓存,但常见的方法是使用负载均衡器让他们对于客户来说,看起来就跟源服务器一样。
内容分发网络(CDN)在整个Internet(或它的一部分)中分发网关缓存,并将其出售给对此感兴趣的网站。
Web缓存对我有坏处么?我为什么要帮助它们?Web缓存是互联网中误解深的技术之一。
因为代理缓存可以隐藏使用网站的用户,所以网站管理员特别害怕失去对他们的站点的控制,这会使得他们很难去知道是谁在使用他们的站点。
然而不幸的是,即使没有Web缓存,网络上也有非常多的因素可以保证管理员精确的知道一个用户如何使用他们的站点。
如果这是你非常关注的问题的话,这篇手册将会指导你如何在站点没有不友好的缓存机制的情况下获取你需要的统计信息。
一、什么是缓存
1、Cache是高速缓冲存储器 一种特殊的存储器子系统,其中复制了频繁使用的数据以利于快速访问
2、凡是位于速度相差较大的两种硬件/软件之间的,用于协调两者数据传输速度差异的结构,均可称之为 Cache
常见的缓存技术有哪些?
一、操作系统缓存
1、文件系统提供的Disk Cache:操作系统会把经常访问到的文件内容放入到内存当中,由文件系统来管理
2、当应用程序通过文件系统访问磁盘文件的时候,操作系统从Disk Cache当中读取文件内容,加速了文件读取速度
3、Disk Cache由操作系统来自动管理,一般不用人工干预,但应当保证物理内存充足,以便于操作系统可以使用尽量多的内存充当Disk Cache,加速文件读取速度
4、特殊的应用程序对文件系统Disk Cache有很高的要求,会绕开文件系统Disk Cache,直接访问磁盘分区,自己实现Disk
5、Cache策略
Oracle的raw device(裸设备) – 直接抛弃文件系统
MySQL的InnoDB: innodb_flush_method = O_DIRECT
二、数据库缓存
缓存策略:a、Query Cache; b、Data Buffer
三、应用程序缓存
包括对象缓存、查询缓存、页面缓存
四、web服务器端缓存
基于代理服务器模式的Web服务器端缓存,如squid/nginx
Web服务器缓存技术被用来实现CDN(内容分发网络 content delivery network)
被国内主流门户网站大量采用
不需要编程,但仅限于新闻发布类网站,页面实时性要求不高
五、基于ajax的浏览器缓存
使用AJAX调用的时候,将数据库在浏览器端缓存
只要不离开当前页面,不刷新当前页面,就可以直接读取缓存数据
只适用于使用AJAX技术的页面
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)