在用户浏览blog的不同页面时,很多内容是重复的,比如相同的javascript,css,背景图片等。如果我们能够建议甚至强制浏览器在本地缓存这些文件,将大大降低页面产生的流量,从而降低页面载入时间。

根据服务器端的响应header(怎么看HTTP Header),一个文件对浏览器而言,有几级不同的缓存状态。

服务器端告诉浏览器不要缓存此文件,每次都到服务器上更新文件。

服务器端没有给浏览器任何指示(此时我也不知道这时候浏览器将会怎么做),这种情况多为动态脚本(比如PHP)产生的文件。

上次传输中,服务器给浏览器发送了Last-Modified或Etag数据,再次浏览时浏览器将提交这些数据到服务器,验证本地版本是否最新的,如果为

最新的则服务器返回304代码,告诉浏览器直接使用本地版本,否则下载新版本。一般来说,有且只有静态文件,服务器端才会给出这些数据。

服务器强制要求浏览器缓存文件,并设置了过期时间。在缓存未到期之前,浏览器将直接使用本地缓存文件,不会与服务器端产生任何通信。

我们要做的是尽量强制浏览器到第四种状态,特别是对于javascript, css和图片等变动较少的文件。

对于PHP产生的动态内容,只需要在内容输出之前输出强制缓存的header即可,比如下面的代码即要求浏览器缓存文件1个月:

header("Cache-Control: public");

header("Pragma: cache");

$offset = 30*60*60*24; // cache 1 month

$ExpStr = "Expires: ".gmdate("D, d M Y H:i:s", time() + $offset)." GMT";

header($ExpStr);

?>

对于静态文件,一般的服务器都支持第3级缓存状态。要想达到第四级的缓存效果,要么像之前GZIP压缩那样,用PHP外包一层,然后用PHP处理。要么需

要服务器端的支持,APACHE的一个模块mod_expires支持给文件添加expires

header。把下面的代码加入你的blog目录下的.htaccess文件,如果你的服务器安装了mod_expires模块,则将自动生效,图片等强

制缓存一个月,html文档缓存10分钟。如果该模块没有安装,也不会出错。

ExpiresActive On

ExpiresByType image/gif A2592000

ExpiresByType image/jpeg A2592000

ExpiresByType image/png A2592000

ExpiresByType application/x-shockwave-flash A2592000

ExpiresByType text/css A2592000

ExpiresByType application/x-javascript A2592000

ExpiresByType text/html A600

在这里有mod_expires更详细的文档和教程。不过我要说明的是,mod_expires在绝大多数服务器上都没安装  ,因为虽然这个模块包含在Apache的发行版里,但并不是默认安装模块。

php 浏览器 缓存,php设置浏览器缓存机制及缓存时间相关推荐

  1. mui 打开openWindow新页面不读取缓存的设置/mui中h5清除缓存页面的办法

    styles参数增加 cachemode:"noCache",  字段 //打开关于页面mui.openWindow({url: localStorage.getItem('tes ...

  2. mysql缓存淘汰机制_Redis缓存总结:淘汰机制、缓存雪崩、数据不一致....

    在实际的工作项目中, 缓存成为高并发.高性能架构的关键组件 ,那么Redis为什么可以作为缓存使用呢?首先可以作为缓存的两个主要特征: 在分层系统中处于内存/CPU具有访问性能良好, 缓存数据饱和,有 ...

  3. redis 查询缓存_Redis缓存总结:淘汰机制、缓存雪崩、数据不一致....

    在实际的工作项目中, 缓存成为高并发.高性能架构的关键组件 ,那么Redis为什么可以作为缓存使用呢?首先可以作为缓存的两个主要特征: 在分层系统中处于内存/CPU具有访问性能良好, 缓存数据饱和,有 ...

  4. php mysql缓存技术_系统的讲解 - PHP 缓存技术

    概述 缓存已经成了项目中是必不可少的一部分,它是提高性能最好的方式,例如减少网络I/O.减少磁盘I/O 等,使项目加载速度变的更快. 缓存可以是CPU缓存.内存缓存.硬盘缓存,不同的缓存查询速度也不一 ...

  5. 浏览器缓存机制(强缓存和协商缓存)总结

    文章目录 前言 缓存过程的分析 强缓存 Expires Cache-Control 协商缓存 Last-Modified和If-Modified-Since ETag和If-None-Match 两者 ...

  6. IE浏览器设置兼容性、清除缓存,重置浏览器、Edge浏览器设置兼容性

    IE浏览器 清除缓存:按下面设置后重启浏览器 重置浏览器: 然后重启浏览器,如果无法确认是否生效,可以重启电脑后再进行尝试. IE浏览器设置兼容性: IE浏览器设置浏览器主页 首先访问网页,然后按下图 ...

  7. 设置浏览器不使用缓存

    设置浏览器不使用缓存 xhr. setRequestHeader("If-Modified-Since", "0");

  8. html输入框不显示cookie_jquery设置浏览器缓存cookie提示内容显示隐藏

    特效描述:设置浏览器缓存 cookie提示 内容显示隐藏,jquery制作通过判断各种浏览器版本等,来设置各个浏览器缓存cookie,控制模块内容或区域在浏览器缓存cookie的情况下,是否显示或隐藏 ...

  9. 三、nginx设置浏览器缓存[expires]

    一.浏览器缓存 解释:浏览器缓存极大缓解了带宽压力,提高了用户体验. 访问页面-查看是否有缓存,如果没有过期,直接击中缓存,不向服务器发送请求 访问页面-查看是否有缓存,如果过期,向服务器发送请求(分 ...

最新文章

  1. ordfilt2函数功能说明
  2. java 多线程下载器_Java多线程的下载器(1)
  3. leetcode 867. 转置矩阵
  4. 惊艳!28岁就任副教授,年纪轻轻已是博导、院长
  5. 人事管理系统 数据流图_中国移动集中化人力资源管理系统试点上线成功
  6. linux tbb 安装_Ubuntu18.04 GCC9 安装
  7. 暴力枚举——三连击(洛谷 P1618)
  8. Node.js+Express商业开发中的安全性考虑
  9. 机器视觉:嵌入式视觉系统中的接口
  10. A. Holidays
  11. 移动应用实战(移动OA)之四_会议室管理之一
  12. 一个基于高阶图匹配的多目标跟踪器:Online Multi-Target Tracking with Tensor-Based High-Order Graph Matching
  13. 齐纳二极管 稳压二极管 SOD123封装 正负区分
  14. android 微信分享注册链接显示app的logo出现黑边处理方案
  15. 文献阅读-区块链发展现状与展望
  16. 【Android】Android Studio安装步骤图解
  17. unzip error 22 - Invalid argument
  18. 射影几何 -- 空间射影几何 1
  19. 全国计算机理论知识,全国计算机等级考试理论知识(冲刺练习)
  20. 盛世昊通2022全新布局,九大生态板块赋能产业数字化

热门文章

  1. 以太网联盟:400GbE后,更高速率以太网接口如何选择,800GbE, 1 TbE 还是 1.6TbE ?
  2. stata-描述性统计分析和回归指令
  3. Python蓝桥杯之煤球数目
  4. Linux更改用户名
  5. Verilog实现SPI主机通信
  6. PHP炫酷,PHP创建一个炫酷的图表
  7. 点号java_java的classpath路径中加点号 ‘.’ 的作用
  8. buffalo dwr 比较
  9. oracle常见报错及解决方法
  10. 00后中国队包揽IOI 2022金牌前4,天才少年全是清华保送生