当前位置 主页 > 服务器问题 > win服务器问题汇总 >

浏览器缓存可以加快站点的访问速度?

栏目:win服务器问题汇总 时间:2018-09-19 18:32

  当我们想尽办法提高服务器负载能力的时候,是否曾想过,其实浏览器也有缓存功能,我们也可以利用浏览器的缓存功能来减少服务器的负载,提高网站吞吐量?
 
  当我们使用抓包工具查看http状态时,我们可以看到200,304,fromcache之类的标识,也许你也早已注意到了他们,并明白他们的意思。但是,你是否想过在你的程序中加入代码主动告诉浏览器,更好地利用浏览器缓存。
 
  备注:本章所有案例都是使用chrome17.0.963.79m浏览器,测试方式为每次打开浏览器新窗口的方式测试,而不是F5刷新。
 
  我们先做一个没有缓存的页面,叫做nocache.php
 
  代码如下:
 
  <?php
 
  echotime();
 
  ?>
 
  用浏览器打开,我们可以看到每次打开页面,都是打印新的时间,返回的状态码是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.1304");
 
  exit;
 
  }
 
  header("Last-Modified:".gmdate("D,dMYH:i:s",time())."GMT");
 
  echotime();
 
  ?>
 
  用浏览器打开,我们可以看到第一次打开,返回的状态码为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,dMYH:i:s",time()+$cache_time)."GMT");
 
  echotime();
 
  ?>
 
  用浏览器打开,我们可以看到第一打开,返回的状态为200,时间为最新的时间。然后我们第二次打开,可以看到状态码依然是200,时间依然是旧的时间,Size栏目显示为fromcache,表示内容是直接从浏览器读取。我们删除expires.php文件,然后第三次在新窗口中打开,可以看到返回200状态码,打印时间依然是旧的,Size依然提示为fromcache,由此可见,设置了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);
 
  echotime();
 
  ?>
 
  我们测试可以得到设置Expires一样的效果,也就是缓存后,删除文件,依然在浏览器缓存有效期内可以正常访问页面。
缩小 缩小 缩小 缩小
IIS7整站下载工具 IIS7批量查询排名 IIS7远程桌面连接工具 iis7-iis网站批量管理 iis7批量替换工具 IIS7服务器专用下载工具 IIS7日志分析工具 IIS7批量PING,服务器批量添加网卡IP小工具 IIS7远程同步备份工具
IIS7网站监控 站群批量SEO查询 批量获取排名域名 批量关键词排名查询 模拟各种蜘蛛 批量友情链接监测 批量检测死链 搜索引擎大全 批量查询外链
批量查询网站标题 批量查询KeyWords 批量查询描述 批量查询网站IP 批量百度收录查询 批量查询百度日收录 批量查询百度周收录 批量查询百度月收录 批量查询360总收录 批量查询360日收录 批量查询网站年龄 批量查询360PC权重 批量查询爱站移动权重 批量查询站长移动权重 批量查询360移动权重 批量查询神马权重 批量查询谷歌PR 批量查询搜狗PR 批量查询百度反链 批量查询爱站首页反链 批量查询爱站内页反链 批量查询百度快照 批量查询搜狗快照 批量icp备案查询 批量网站ip地址查询 批量查询导出链接 批量查询百度V认证 批量查询百度安全 批量查询站长PC权重 批量查询爱站PC权重 批量查询搜狗总收录 站长资源大全 IIS7-cms大全 IIS7站群大全 IIS7虚拟空间大全 IIS7服务器大全 IIS7-VPS大全