Cache-control使用Cache-control:private学习笔记

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Cache-control使⽤Cache-control:private学习笔记
其作⽤根据不同的重新浏览⽅式,分为以下⼏种情况:
(1)、打开新窗⼝
值为private、no-cache、must-revalidate,那么打开新窗⼝访问时都会重新访问服务器。

⽽如果指定了max-age值,那么在此值内的时间⾥就不会重新访问服务器,例如:
Cache-control: max-age=5(表⽰当访问此⽹页后的5秒内再次访问不会去服务器)
(2)、在地址栏回车
值为private或must-revalidate则只有第⼀次访问时会访问服务器,以后就不再访问。

值为no-cache,那么每次都会访问。

值为max-age,则在过期之前不会重复访问。

(3)、按后退按扭
值为private、must-revalidate、max-age,则不会重访问,
值为no-cache,则每次都重复访问
(4)、按刷新按扭
⽆论为何值,都会重复访问
Cache-control值为“no-cache”时,访问此页⾯不会在Internet临时⽂章夹留下页⾯备份。

另外,通过指定“Expires”值也会影响到缓存。

例如,指定Expires值为⼀个早已过去的时间,那么访问此⽹时若重复在地址栏按回车,那么每次都会重复访问: Expires: Fri, 31 Dec 1999 16:00:00 GMT
⽐如:禁⽌页⾯在IE中缓存
http响应消息头部设置:
复制代码代码如下:
CacheControl = no-cache
Pragma=no-cache
Expires = -1
Expires是个好东东,如果服务器上的⽹页经常变化,就把它设置为-1,表⽰⽴即过期。

如果⼀个⽹页每天凌晨1点更新,可以把Expires设置为第⼆天的凌晨1点。

当HTTP1.1服务器指定 CacheControl = no-cache时,浏览器就不会缓存该⽹页。

旧式 HTTP 1.0 服务器不能使⽤ Cache-Control 标题。

header常⽤指令
header分为三部分:
第⼀部分为HTTP协议的版本(HTTP-Version);
第⼆部分为状态代码(Status);
第三部分为原因短语(Reason-Phrase)。

复制代码代码如下:
<?php
// fix 404 pages: ⽤这个header指令来解决URL重写产⽣的404 header
header('HTTP/1.1 200 OK');
// set 404 header: 页⾯没找到
header('HTTP/1.1 404 Not Found');
// 页⾯被永久删除,可以告诉搜索引擎更新它们的urls
// set Moved Permanently header (good for redrictions)
// use with location header
header('HTTP/1.1 301 Moved Permanently');
// 访问受限
header('HTTP/1.1 403 Forbidden');
// 服务器错误
header('HTTP/1.1 500 Internal Server Error');
// 重定向到⼀个新的位置
// redirect to a new location:
header('Location: https://);
延迟⼀段时间后重定向
// redrict with delay:
header('Refresh: 10; url=');
print 'You will be redirected in 10 seconds';
// 覆盖 X-Powered-By value
// override X-Powered-By: PHP:
header('X-Powered-By: PHP/4.4.0');
header('X-Powered-By: Brain/0.6b');
// 内容语⾔ (en = English)
// content language (en = English)
header('Content-language: en');
//最后修改时间 (在缓存的时候可以⽤到)
// last modified (good for caching)
$time = time() - 60; // or filemtime($fn), etc
header('Last-Modified: '.gmdate('D, d M Y H:i:s', $time).' GMT');
// 告诉浏览器要获取的内容还没有更新
// header for telling the browser that the content
// did not get changed
header('HTTP/1.1 304 Not Modified');
// 设置内容的长度 (缓存的时候可以⽤到):
// set content length (good for caching):
header('Content-Length: 1234');
// ⽤来下载⽂件:
// Headers for an download:
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename="example.zip"'); header('Content-Transfer-Encoding: binary');
// 禁⽌缓存当前⽂档:
// load the file to send:readfile('example.zip');
// Disable caching of the current document:
header('Cache-Control: no-cache, no-store, max-age=0, must-revalidate'); header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
// 设置内容类型:
// Date in the pastheader('Pragma: no-cache');
// set content type:
header('Content-Type: text/html; charset=iso-8859-1');
header('Content-Type: text/html; charset=utf-8');
header('Content-Type: text/plain');
// plain text file
header('Content-Type: image/jpeg');
// JPG picture
header('Content-Type: application/zip');
// ZIP file
header('Content-Type: application/pdf');
// PDF file
header('Content-Type: audio/mpeg');
// Audio MPEG (MP3,...) file
header('Content-Type: application/x-shockwave-flash');
// 显⽰登录对话框,可以⽤来进⾏HTTP认证
// Flash animation// show sign in box
header('HTTP/1.1 401 Unauthorized');
header('WWW-Authenticate: Basic realm="Top Secret"');
print 'Text that will be displayed if the user hits cancel or ';
print 'enters wrong login data';
>
现在表单的填写,我们可以⽤AJAX对⽤户随时进⾏验证,进⾏友好的提⽰,但是在⽤户没有留意AJAX友好提⽰,提交了错误的表单,跳回原页,⽽填写的信息却全部丢失了。

要⽀持页⾯回跳,有以下的办法:
1.使⽤session_cache_limiter⽅法: session_cache_limiter('private,must-revalidate');但是要值得注意的是
session_cache_limiter()⽅法要写在session_start()⽅法之前才有⽤;
2.⽤header来设置控制缓存的⽅法: header('Cache-control:private,must-revalidate');。

相关文档
最新文档