php 浏览器 缓存,php设置浏览器缓存机制及缓存时间
在用户浏览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设置浏览器缓存机制及缓存时间相关推荐
- mui 打开openWindow新页面不读取缓存的设置/mui中h5清除缓存页面的办法
styles参数增加 cachemode:"noCache", 字段 //打开关于页面mui.openWindow({url: localStorage.getItem('tes ...
- mysql缓存淘汰机制_Redis缓存总结:淘汰机制、缓存雪崩、数据不一致....
在实际的工作项目中, 缓存成为高并发.高性能架构的关键组件 ,那么Redis为什么可以作为缓存使用呢?首先可以作为缓存的两个主要特征: 在分层系统中处于内存/CPU具有访问性能良好, 缓存数据饱和,有 ...
- redis 查询缓存_Redis缓存总结:淘汰机制、缓存雪崩、数据不一致....
在实际的工作项目中, 缓存成为高并发.高性能架构的关键组件 ,那么Redis为什么可以作为缓存使用呢?首先可以作为缓存的两个主要特征: 在分层系统中处于内存/CPU具有访问性能良好, 缓存数据饱和,有 ...
- php mysql缓存技术_系统的讲解 - PHP 缓存技术
概述 缓存已经成了项目中是必不可少的一部分,它是提高性能最好的方式,例如减少网络I/O.减少磁盘I/O 等,使项目加载速度变的更快. 缓存可以是CPU缓存.内存缓存.硬盘缓存,不同的缓存查询速度也不一 ...
- 浏览器缓存机制(强缓存和协商缓存)总结
文章目录 前言 缓存过程的分析 强缓存 Expires Cache-Control 协商缓存 Last-Modified和If-Modified-Since ETag和If-None-Match 两者 ...
- IE浏览器设置兼容性、清除缓存,重置浏览器、Edge浏览器设置兼容性
IE浏览器 清除缓存:按下面设置后重启浏览器 重置浏览器: 然后重启浏览器,如果无法确认是否生效,可以重启电脑后再进行尝试. IE浏览器设置兼容性: IE浏览器设置浏览器主页 首先访问网页,然后按下图 ...
- 设置浏览器不使用缓存
设置浏览器不使用缓存 xhr. setRequestHeader("If-Modified-Since", "0");
- html输入框不显示cookie_jquery设置浏览器缓存cookie提示内容显示隐藏
特效描述:设置浏览器缓存 cookie提示 内容显示隐藏,jquery制作通过判断各种浏览器版本等,来设置各个浏览器缓存cookie,控制模块内容或区域在浏览器缓存cookie的情况下,是否显示或隐藏 ...
- 三、nginx设置浏览器缓存[expires]
一.浏览器缓存 解释:浏览器缓存极大缓解了带宽压力,提高了用户体验. 访问页面-查看是否有缓存,如果没有过期,直接击中缓存,不向服务器发送请求 访问页面-查看是否有缓存,如果过期,向服务器发送请求(分 ...
最新文章
- ordfilt2函数功能说明
- java 多线程下载器_Java多线程的下载器(1)
- leetcode 867. 转置矩阵
- 惊艳!28岁就任副教授,年纪轻轻已是博导、院长
- 人事管理系统 数据流图_中国移动集中化人力资源管理系统试点上线成功
- linux tbb 安装_Ubuntu18.04 GCC9 安装
- 暴力枚举——三连击(洛谷 P1618)
- Node.js+Express商业开发中的安全性考虑
- 机器视觉:嵌入式视觉系统中的接口
- A. Holidays
- 移动应用实战(移动OA)之四_会议室管理之一
- 一个基于高阶图匹配的多目标跟踪器:Online Multi-Target Tracking with Tensor-Based High-Order Graph Matching
- 齐纳二极管 稳压二极管 SOD123封装 正负区分
- android 微信分享注册链接显示app的logo出现黑边处理方案
- 文献阅读-区块链发展现状与展望
- 【Android】Android Studio安装步骤图解
- unzip error 22 - Invalid argument
- 射影几何 -- 空间射影几何 1
- 全国计算机理论知识,全国计算机等级考试理论知识(冲刺练习)
- 盛世昊通2022全新布局,九大生态板块赋能产业数字化