PHP动态输出图片304缓存。

function caching_headers ($file, $timestamp) {
    $gmt_mtime = gmdate(‘r‘, $timestamp);
    header(‘ETag: "‘.md5($timestamp.$file).‘"‘);
    header(‘Last-Modified: ‘.$gmt_mtime);
    header(‘Cache-Control: public‘);

    if(isset($_SERVER[‘HTTP_IF_MODIFIED_SINCE‘]) || isset($_SERVER[‘HTTP_IF_NONE_MATCH‘])) {
        if ($_SERVER[‘HTTP_IF_MODIFIED_SINCE‘] == $gmt_mtime || str_replace(‘"‘, ‘‘, stripslashes($_SERVER[‘HTTP_IF_NONE_MATCH‘])) == md5($timestamp.$file)) {
            header(‘HTTP/1.1 304 Not Modified‘);
            exit();
        }
    }}
caching_headers ($_SERVER[‘SCRIPT_FILENAME‘], filemtime($_SERVER[‘SCRIPT_FILENAME‘]));
时间: 2024-10-19 04:34:51

PHP动态输出图片304缓存。的相关文章

SDWebImage图片二级缓存异步加载基本原理

关于SDWebImage SDWebImage是一个针对图片加载的插件库,提供了一个支持缓存的用于异步加载图片的下载工具,特别的为常用的UI元素:UIImageView,UIButton和MKAnnotationView提供了Category类别扩展,可以作为一个很方便的工具.其中SDWebImagePrefetcher可以预先下载图片,方便后续使用. SDWebImage的Github地址为:https://github.com/rs/SDWebImage SDWebImage的几点特性 为U

js的动态加载、缓存、更新以及复用(一)

使用范围: OA.MIS.ERP等信息管理类的项目,暂时不考虑网站. 遇到的问题: 完成一个项目,往往需要引用很多js文件,比如jQuery.js.easyUI等.还有自己写的一些列js文件,那么这些文件如何方便的加载,如果文件有变化如何才能让客户端及时更新缓存?如果能够提高点运行效率,那就更好了. 目标: 1.  可以方便的引用js文件. 2.  尽量使用各种缓存,避免频繁从服务器读取文件. 3.  如果js文件有更新或者增加.减少几个减少js文件,需要客户端能够自动.立刻更新. 4.  Js

图片的缓存

高效加载大图片 我们在编写Android程序的时候经常要用到许多图片,不同图片总是会有不同的形状.不同的大小,但在大多数情况下,这些图片都会大于我们程序所需要的大小.比如说系统图片库里展示的图片大都是用手机摄像头拍出来的,这些图片的分辨率会比我们手机屏幕的分辨率高得多.大家应该知道,我们编写的应用程序都是有一定内存限制的,程序占用了过高的内存就容易出现OOM(OutOfMemory)异常.我们可以通过下面的代码看出每个应用程序最高可用内存是多少. int maxMemory = (int) (R

前端不为人知的一面--前端冷知识集锦 前端已经被玩儿坏了!像console.log()可以向控制台输出图片

前端已经被玩儿坏了!像console.log()可以向控制台输出图片等炫酷的玩意已经不是什么新闻了,像用||操作符给变量赋默认值也是人尽皆知的旧闻了,今天看到Quora上一个帖子,瞬间又GET了好多前端技能,一些属于技巧,一些则是闻所未闻的冷知识,一时间还消化不过来.现分类整理出来分享给大家,也补充了一些平时的积累和扩展了一些内容. HTML篇 浏览器地址栏运行JavaScript代码 这个很多人应该还是知道的,在浏览器地址栏可以直接运行JavaScript代码,做法是以javascript:开

动态设置图片的宽度和高度

动态设置图片控件的宽度和高度: imageView.getLayoutParams().width=600;imageView.getLayoutParams().height=400; 设置图片(src): imageView.setImageResource(resId); android获得屏幕高度和宽度: 1.WindowManager wm = (WindowManager) getContext()                     .getSystemService(Cont

js 动态修改属性值 动态修改图片,字等

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"   http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html> <head> <meta http-equiv = "content-type" content="text/html;charset=utf-8"/> &

iOS利用SDWebImage图片下载缓存

一.我们先来了解一下SDWebImage的使用: 1.导入框架,引入头文件: #import "UIImageView+WebCache.h" 也可以直接使用CocoaPods来引入和管理 (OC 如下) platform :ios, '7.0' pod 'SDWebImage', '~>3.8' (swift)并且要确保添加了use_frameworks,iOS版本为8.0+ platform :ios, '8.0' use_frameworks! 2.图片下载并缓存方法: /

社交应用动态九宫格图片的规则

这里主要以微信和QQ空间为作为研究对象,得到的结论如下. QQ空间里的动态 iOS设备,以iPhone6为分界 iPhone6及以上分辨率的设备: 当宽且高同时 > 512px时,判断 宽/高的比例值:大于 2时,以高度为基准,缩小到512px,宽度等比缩.小于等于 2时,以宽度为基准,缩小到512px,高度等比缩 当宽.高其中一边小于512px,直接下原图: iPhone6以下的设备(5s.SE.4s),判断条件同上,只是将512px改为200px Android规则同上,只是以1280分辨率

apache2.4开启gzip无法实现304缓存的

今天研究缓存的时候,发现同样的代码,我本地启动了304缓存,但是腾讯云服务器上的网站没有.研究了半天,感觉问题就在gzip上.本地没用gzip压缩,js.css304缓存,但是服务器上开了gzip,每次请求都是200...奇怪了啊.后来百度得知,发现在启用mod_deflate模块后,会自动给ETag加上"-gzip"串,导致不会缓存,每次都发送文件内容了. 网上一致的修改方法是在请求后,把Etag中的"-gzip"去掉.这里需要在apache的.conf配置文件里