博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
http 缓存相关
阅读量:5170 次
发布时间:2019-06-13

本文共 1684 字,大约阅读时间需要 5 分钟。

首先分享一下CI中文件强制下载时的header设置。

[php] view plain copy    if (strpos($_SERVER['HTTP_USER_AGENT'], "MSIE") !== FALSE)              {                  header('Content-Type: "'.$mime.'"');                  header('Content-Disposition: attachment; filename="'.$filename.'"');                  header('Expires: 0');                  header('Cache-Control: must-revalidate, post-check=0, pre-check=0');                  header("Content-Transfer-Encoding: binary");                  header('Pragma: public');                  header("Content-Length: ".strlen($data));              }              else              {                  header('Content-Type: "'.$mime.'"');                  header('Content-Disposition: attachment; filename="'.$filename.'"');                  header("Content-Transfer-Encoding: binary");                  header('Expires: 0');                  header('Pragma: no-cache');                  header("Content-Length: ".strlen($data));              }

 

其他的都比较好理解,主要是关于Cache-control和Pragma的设置让人比较迷惑。

关于Cache-Control的must-revalidate:强制页面不缓存,作用与no-cache相同,但更严格,强制意味更明显。详细作用请参考:

关于post-check和pre-check:Internet Explorer 5对于HTTP头信息使用两种新的时间间隔指示:pre-check 和post-check。pre-check扩展名定义了这样一段时间间隔(以秒记):即在这段时间间隔之后,一个对象在显示给用户之前应被选中进行更 新。选中对象也可以发生在该对象已经显示给用户之后,但是,要保证在用户下次想要看这个对象时,被高速缓存起来的副本是更新过的。post-check扩 展名定义了这样一段时间间隔(以秒记):即在这段时间之后,在显示给用户之前,该对象被选中进行更新。即post-check=0,pre- check=0是IE5.0才有的防cache声明。(参考自和)

关于Pragma:no-cache,跟Cache-Control: no-cache相同。Pragma: no-cache兼容http 1.0 ,Cache-Control: no-cache是http 1.1提供的。因此,Pragma: no-cache可以应用到http 1.0 和http 1.1,而Cache-Control: no-cache只能应用于http 1.1.

关于Pragma:public 作用未知,还请阅读本篇文章的各位大侠给予解释。

转载于:https://www.cnblogs.com/1995hxt/p/5686063.html

你可能感兴趣的文章
【poj3294-不小于k个字符串中最长公共子串】后缀数组
查看>>
java如何获取其它用户登录的真是IP地址
查看>>
Jquery通过指定层次关系获取元素
查看>>
c# for 和 foreach 的区别
查看>>
docfx (一)
查看>>
HashMap底层实现原理/HashMap与HashTable区别/HashMap与HashSet区别
查看>>
深度学习之前馈神经网络(前向传播和误差反向传播)
查看>>
IEnumerable<T>和IQueryable<T>区别
查看>>
(转)MFC界面风格
查看>>
Centos7 tmux1.6 安装
查看>>
二叉树(三)
查看>>
linux加密文件系统 fsck 无法修复一例
查看>>
【linux配置】VMware安装Redhat6.5
查看>>
AI自主决策——有限状态机
查看>>
iframe父子窗口取值
查看>>
利用Python进行数据分析_Pandas_数据结构
查看>>
《计算机组成原理》第6章:总线
查看>>
关于String str =new String("abc")和 String str = "abc"的比较
查看>>
Android软件架构及子系统介绍
查看>>
Java命名规范
查看>>