php 控制304,php静态文件返回304技巧分享
有时一些静态文件(如图片)会由php输出,会发现请求都是200,静态文件每次都去服务器上请求太浪费资源了,这时如何让浏览器缓存图片呢?就需要我们在php中输出304了。
我们可以利用php中的 HTTP_IF_MODIFIED_SINCE 结合etag来干这事。Etag没有明确规定的格式,我们可以用文件修改时间的md5值,代码如下:
复制代码 代码如下:
private function _addEtag($file) {
$last_modified_time = filemtime($file);
$etag = md5_file($file);
// always send headers
header("Last-Modified: ".gmdate("D, d M Y H:i:s", $last_modified_time)." GMT");
header("Etag: $etag");
// exit if not modified
if (@strtotime($_SERVER['HTTP_IF_MODIFIED_SINCE']) == $last_modified_time ||
@trim($_SERVER['HTTP_IF_NONE_MATCH']) == $etag) {
header("HTTP/1.1 304 Not Modified");
exit;
}
}
在代码中可以在静态文件(如图片)输出之前调用即可。
php 控制304,php静态文件返回304技巧分享相关推荐
- php 控制304,php静态文件返回304技巧分享,_PHP教程
php静态文件返回304技巧分享, 有时一些静态文件(如图片)会由php输出,会发现请求都是200,静态文件每次都去服务器上请求太浪费资源了,这时如何让浏览器缓存图片呢?就需要我们在php中输出304 ...
- php如何处理304缓存,php静态文件返回304技巧分享
有时一些静态文件(如图片)会由php输出,会发现请求都是200,静态文件每次都去服务器上请求太浪费资源了,这时如何让浏览器缓存图片呢?就需要我们在php中输出304了. 我们可以利用php中的 HTT ...
- 将cdr文件导入ps技巧分享
2019独角兽企业重金招聘Python工程师标准>>> 本教程主要介绍如何将cdr文件导入ps技巧,教程介绍的方法很实用,尤其对于新手来说很值得学习,喜欢的朋友可以跟着教程一起来学习 ...
- 将大量文件归类的技巧分享
有没有可以批量管理桌面文件的方法呢?很多小伙伴们的电脑桌面被大量的文件占据着,想要整理确有心无力,那今天小编就来给大家分享一个可以快速将文件归类的简单操作. 这个方法需要大家在浏览器下载一个叫[固乔文 ...
- 如何在nginx中缓存静态文件
这篇教程说明你应该怎样配置 nginx.设置 HTTP 头部过期时间,用 Cache-Control 中的 max-age 标记为静态文件(比如图片. CSS 和 Javascript 文件)设置一个 ...
- ASP.NET Core使用静态文件、目录游览与MIME类型管理
前言 今天我们来了解了解ASP.NET Core中的静态文件的处理方式. 以前我们寄宿在IIS中的时候,很多静态文件的过滤 和相关的安全措施 都已经帮我们处理好了. ASP.NET Core则不同,因 ...
- 用nginx缓存静态文件
这篇教程说明你应该怎样配置 nginx.设置 HTTP 头部过期时间,用 Cache-Control 中的 max-age 标记为静态文件(比如图片. CSS 和 Javascript 文件)设置一个 ...
- 霸气!Nginx 中缓存静态文件秘籍
这篇教程说明你应该怎样配置 nginx.设置 HTTP 头部过期时间,用 Cache-Control 中的 max-age 标记为静态文件(比如图片. CSS 和 Javascript 文件)设置一个 ...
- HTTP 返回304
304 的标准解释是: Not Modified 客户端有缓冲的文档并发出了一个条件性的请求(一般是提供If-Modified-Since头表示客户只想比指定日期更新的文档).服务器告诉客户,原来缓冲 ...
最新文章
- P1502 窗口的星星 离散化+扫描线
- 计算机一级及wps试题,2016计算机一级WPS考试试题及答案
- 18_clickhouse副本同步与高可用功能验证,分布式表与集群配置,数据副本与复制表,ZooKeeper整合,创建复制表,副本同步机制,数据原子写入与去重,负载平衡策略,案例(学习笔记)
- rete_Rete之外的生活– RIP Rete 2013 :)
- 利用flashback query解决误删除表数据
- python-笔记(二)数据类型
- C++基础教程之数组
- 剑指offer——面试题32:从1到n整数中1出现的次数
- ViT (Vision Transformer) ---- Seq2Seq
- Transcad学习记
- 阿里云跨境电商企业出海最佳实践及数字化解决方案
- 低代码平台开发 python_低组词_低的多音字组词,低是多音字吗,低组词有哪些
- Java初级程序员面试总结(二) --HashMap篇
- 算法进阶之BFS 算法
- 九个最佳ICON图标搜索引擎
- VScode配置PHP运行环境
- ctfshow--ssrf
- TrinityCore魔兽世界服务器-注册网站
- c语言中1代表true嘛,c++中-1是true呢还是false呢
- Matlab 预防性维修,MATLAB进行预测性维护(官网例程)-基于相似性进行剩余有效寿命预测 – MATLAB中文论坛...
热门文章
- SAP UI5 XML view lifecycle processing - defineMasterHeaderFooter
- Component Configuration.js - 所有支持属性列表 - configuration priority
- replication debug for PRODUCT_MAT
- Cloud for Customer UI里点了超链接后的跳转处理
- raise event when save - COM_PR_CHBADI_RAISE_WF_EVENT
- how does iv_included_delete work
- 二叉树的应用- 找出倚天屠龙记小说里所有的成语
- 一个具体的例子学习SAP S/4HANA里Fiori应用的排错分析
- 复旦大学计算机应用能力,复旦大学计算机应用能力水平测试(FudanComputerSkills.doc...
- html文本滚动到底后自动回到顶部,JS 实现DIV 滚动至顶部后固定