如何使用浏览器缓存来加快站点的访问速度 转载

当我们想尽办法提高服务器负载能力的时候,是否曾想过,其实浏览器也有缓存功能,我们也可以利用浏览器的缓存功能来减少服务器的负载,提高网站吞吐量? 
       当我们使用抓包工具查看http状态时,我们可以看到200,304,from cache之类的标识,也许你也早已注意到了他们,并明白他们的意思。但是,你是否想过在你的程序中加入代码主动告诉浏览器,更好地利用浏览器缓存。 
备注:本章所有案例都是使用chrome 17.0.963.79 m浏览器,测试方式为每次打开浏览器新窗口的方式测试,而不是F5刷新。 
我们先做一个没有缓存的页面,叫做nocache.php
代码如下:

 <?php 
echo time(); 
?>

用浏览器打开,我们可以看到每次打开页面,都是打印新的时间,返回的状态码是200,表明在默认情况下,我们的浏览器没有使用缓存。
我们再做一个页面,叫做last_modified.php
代码如下:

<?php 
$cache_time = 3600; 
$modified_time = @$_SERVER[‘HTTP_IF_MODIFIED_SINCE‘]; 
if( strtotime($modified_time)+$cache_time > time() ){ 
    header("HTTP/1.1 304"); 
    exit; 
} 
header("Last-Modified: ".gmdate("D, d M Y H:i:s", time() )." GMT");  
echo time(); 
?>

用浏览器打开,我们可以看到第一次打开,返回的状态码为200,打印时间为最新时间。然后我们第二次打开,可以看到状态码为 304,时间和刚才的时间一样,表明我们是使用到缓存了。我们删除last_modified.php文件,然后第三次打开页面,浏览器返回404错误, 可见Last-Modified虽然使用了缓存,但是每次打开页面依然需要向服务器发起http请求,浏览器根据用户 的$_SERVER[‘HTTP_IF_MODIFIED_SINCE‘]来判断浏览器的内容是否过期,没过期的话返回304状态,浏览器内容从缓存中读 取。
我们再做一个页面,叫做 expires.php
代码如下:

<?php 
$cache_time = 3600; 
header("Expires: ".gmdate("D, d M Y H:i:s", time()+$cache_time )." GMT");    
echo time(); 
?>

用浏览器打开,我们可以看到第一打开,返回的状态为200,时间为 最新的时间。然后我们第二次打开,可以看到状态码依然是200,时间依然是旧的时间,Size栏目显示为from cache,表示内容是直接从浏览器读 取。我们删除expires.php文件,然后第三次在新窗口中打开,可以看到返回200状态码,打印时间依然是旧的,Size依然提示为 from cache,由此可见,设置了Expires,就算删除页面,浏览器端依然可以显示,表明浏览器根本就没有向服务器发起http请求。 
 
   
到这里,也许你会感觉Expires比Last-Modified缓存效果更好是吧,因为本地有缓存数据时,不需要向服务器发起http请求,服务器的并
发数会明显的减少,可以少处理很多http请求。但是Expires也有缺点,那就是设置的过期时间是服务器的时间,而不是你本地的时间,这样如果服务器
时间跟你本地时间不一致时,可能并没有起到缓存的效果。HTTP/1.1为了弥补Expirse的不足,引入了Cache-Control标记。格式如下
Cache-Control: max-age=<second>,这个时间是相对浏览器本地时间,所以更加准确。
我们再做一个页面,叫做cached_control.php
代码如下:

 <?php 
$cache_time = 3600; 
header("Cache-Control: max-age=".$cache_time); 
echo time(); 
?>

我们测试可以得到设置Expires一样的效果,也就是缓存后,删除文件,依然在浏览器缓存有效期内可以正常访问页面。 
 
   
好了,over了,下次当你服务器并发太高,服务器资源和带宽资源不足时,请记住伟大的浏览器缓存吧!也许你依然不以为然,觉得提高服务器的吞吐量有很多
办法,比如在服务器端做缓存,把页面静态化,等等。但是我相信有一个东西你应该会在意,没错,就是带宽,在意吧?如果能利用好浏览器缓存,将可以降低你的
宽带资源,这样不是很好吗。

水平凡‘s Blog » 如何使用浏览器缓存来加快站点的访问速度

时间: 2024-10-13 07:46:47

如何使用浏览器缓存来加快站点的访问速度 转载的相关文章

加快Bitmap的访问速度

引言 在对Bitmap图片操作的时候,有时需要用到获取或设置像素颜色方法:GetPixel 和 SetPixel, 如果直接对这两个方法进行操作的话速度很慢,这里我们可以通过把数据提取出来操作,然后操作完在复制回去可以加快访问速度 两种方法 其实对Bitmap的访问还有两种方式,一种是内存法,一种是指针法 1.内存法 这里定义一个类LockBitmap,通过把Bitmap数据拷贝出来,在内存上直接操作,操作完成后在拷贝到Bitmap中 public class LockBitmap { Bitm

【Github】加快github的访问速度

1. 针对: github.global.ssl.fastly.net github.com 2. http://github.com.ipaddress.com/#ipinfo http://github.global.ssl.fastly.net.ipaddress.com/#ipinfo 然后修改host mac 清理dns缓存: sudo killall -HUP mDNSResponder 然并卵? 原文地址:https://www.cnblogs.com/kingdelee/p/10

2-12-配置squid代理服务器加快网站访问速度

本节所讲内容: squid服务器常见概念 squid服务器安装及相关配置文件 实战:配置squid正向代理服务器 实战:配置透明squid代理提升访问速度 实战:配置squid反向代理加速度内网web服务器访问速度 squid服务概述: 全称: squid cache,是一个流行的自由软件(GNU通用公共许可证). 主要有连个功能:  代理服务器 和 为web服务器提供缓存 应用广泛: 1. 共享网络资源,缓存万维网; 2.为web服务器前置缓存提高web服务器的访问速度; 3. 域名和其他网络

浏览器缓存机制学习总结

在前端开发中,性能一直都是被大家所重视的一点,然而判断一个网站的性能最直观的就是看网页打开的速度.其中提高网页反应速度的一个方式就是使用缓存.一个优秀的缓存策略可以缩短网页请求资源的距离,减少延迟,并且由于缓存文件可以重复利用,还可以减少带宽,降低网络负荷. 一.web缓存简介: web缓存是指一个web资源(如html页面,图片,js,数据等)存在于web服务器和客户端(浏览器)之间的副本. 缓存会根据进来的请求保存输出内容的副本:当下一个请求来到的时候,如果是相同的URL,缓存会根据缓存机制

手机网页调试·清除浏览器缓存的方法

在手机里调试网页的时候,总是为清除缓存烦恼.特别是QQ浏览器.最后甚至有同学开发出了Android下一键清除清除各种浏览器缓存的APP,但需要root,且每次耗时不短.最后经过尝试,发现了一个方便.有效的方法.那就是利用HTTP的响应头,强制浏览器不缓存资源. NodeJS 中的实现方法: NodeJS中可以通过设置一下方法设置响应头 res.setHeader("CacheControl", 'no-cache'); res.setHeader("Expires"

浏览器缓存机制详解

对于浏览器缓存,相信很多开发者对它真的是又爱又恨.一方面极大地提升了用户体验,而另一方面有时会因为读取了缓存而展示了"错误"的东西,而在开发过程中千方百计地想把缓存禁掉.那么浏览器缓存究竟是个什么样的神奇玩意呢? 什么是浏览器缓存: 简单来说,浏览器缓存就是把一个已经请求过的Web资源(如html页面,图片,js,数据等)拷贝一份副本储存在浏览器中.缓存会根据进来的请求保存输出内容的副本.当下一个请求来到的时候,如果是相同的URL,缓存会根据缓存机制决定是直接使用副本响应访问请求,还是

Java缓存学习之二:浏览器缓存机制

浏览器端的九种缓存机制介绍 浏览器缓存是浏览器端保存数据用于快速读取或避免重复资源请求的优化机制,有效的缓存使用可以避免重复的网络请求和浏览器快速地读取本地数据,整体上加速网页展示给用户.浏览器端缓存的机制种类较多,总体归纳为九种,这里详细分析下这九种缓存机制的原理和使用场景.打开浏览器的调试模式->resources左侧就有浏览器的8种缓存机制. 一.http缓存 http缓存是基于HTTP协议的浏览器文件级缓存机制.即针对文件的重复请求情况下,浏览器可以根据协议头判断从服务器端请求文件还是从

浏览器缓存的作用,如何使用,如何清除。

浏览器缓存就是你看网页的网页里的图片.音乐.视频文件,存在系统里,在你下次访问的时候若网页没有变化,则直接从缓存调用,来加快浏览速度. 一.作用: 浏览器缓存(Browser Caching)是为了节约网络的资源加速浏览,浏览器在用户磁盘上对最近请求过的文档进行存储,当访问者再次请求这个页面时,浏览器就可以从本地磁盘显示文档,这样就可以加速页面的阅览. 主要目的:节约宽带资源.节约了网络的资源,提高了网络的效率. 二.使用 浏览器缓存主要有两类 缓存协商:Last-modified ,Etag

web基础-web工作原理,http协议,浏览器缓存

1,web工作原理 2,http协议 3,浏览器缓存 4,cookie和session -------------------------------------------------------------------------------------------------------------------------------- 1,web工作原理 平时用浏览器,输入网址后回车,页面响应我们想要浏览的内容,简单操作的背后蕴涵了什么原理? 当输入url回车后,客户端(浏览器)会去请求