background image

PHP 设置图片浏览器缓存方法介绍

不管你是使用

php 打开浏览器缓存还是使用 apache,iis 服务器环境来配置我们都是会针对浏

览器的

Cache-Control 来操作,下面我来给大家介绍 PHP 设置图片浏览器缓存

Cache-Control
Cache-Control 是最重要的规则。这个字段用于指定所有缓存机制在整个请求/响应链中必须
服从的指令。这些指令指定用于阻止缓存对请求或响应造成不利干扰的行为。这些指令通常
覆盖默认缓存算法。缓存指令是单向的,即请求中存在一个指令并不意味着响应中将存在同
一个指令。
cache-control 定义是:Cache-Control = “Cache-Control” “:” cache-directive

 

。表

1 展示了适用

的值。

常用 cache-directive 值
Cache-directive

说明

public

所有内容都将被缓存

private

内容只缓存到私有缓存中

no-cache

所有内容都不会被缓存

no-store

所有内容都不会被缓存到缓存或 Internet 临时文件中

must-revalidation/proxy-
revalidation

如果缓存的内容失效,请求必须发送到服务器/代理以进行重新验

max-age=xxx  (xxx  is 

numeric)

缓存的内容将在 xxx 秒后失效, 这个选项只在 HTTP 1.1 可用, 并如
果和 Last-Modified 一起使用时, 优先级较高

在客户端通过浏览器发出第一次请求某一个

URL

 

时,根据

HTTP 协议的规定,浏览器会向

服务器传送报头

(Http Request Header),服务器端响应同时记录相关属性标记(Http Reponse 

Header),服务器端的返回状态会是 200,格式类似如下:
HTTP/1.1 200 OK
Date: Tue, 03 Mar 2009 04:58:40 GMT
Content-Type: image/jpeg
Content-Length: 83185
Last-Modified: Tue, 24 Feb 2009 08:01:04 GMT
Cache-Control: max-age=2592000
Expires: Thu, 02 Apr 2009 05:14:08 GMT
Etag: “5d8c72a5edda8d6a:3239″
客户端第二次请求此

URL

 

时,根据

HTTP 协议的规定,浏览器会向服务器传送报头(Http 

Request Header),服务器端响应并记录相关记录属性标记文件没有发生改动 ,服务器端返回
304,直接从缓存中读取:
代码如下
HTTP/1.x 304 Not Modified
Date: Tue, 03 Mar 2009 05:03:56 GMT
Content-Type: image/jpeg
Content-Length: 83185
Last-Modified: Tue, 24 Feb 2009 08:01:04 GMT
Cache-Control: max-age=2592000