header头 下载文件 参数详解
header("Pragma: public"); //
header("Expires: 0"); //
header("Cache-Control:must-revalidate, post-check=0, pre-check=0");//
header("Content-Type:application/force-download");//
header("Content-Type:application/octet-stream");//
header("Content-Type:application/vnd.ms-excel;");//
header("Content-Type:application/download");//
header("Content-Disposition:attachment;filename=测试.xlsx");//
header("Content-Transfer-Encoding:binary");//
//2
浏览器不会响应缓存
//1
Public指示响应可被任何缓存区缓存。
//3
must-revalidate : 必须去服务器端验证,也就是一定不读缓存。
Internet Explorer 5有一项叫作Lazy Update (“懒惰”更新)的新特性。Lazy Update可以使网站将一个对象缓存起来,同时又可以计算此对象的被点击数。这对广告图像、首页或搜索页是非常有用的。在这些页面上,你希望用户立即看到页面,但是你又想在某些地方更新内容并且跟踪记录有多少人已看过你的页面。对于一个Lazy Update页面,在它首次被访问时,其上的对象就被下载并被高速缓存起来。接下来,用户看到的是被缓存起来的内容。如果服务器有了新的内容,则该页面将会在后台被下载到高速缓存中。当用户下次访问该页面时,将显示被更新的内容。
为了支持这种功能,Internet Explorer 5对于HTTP头信息使用两种新的时间间隔指示:pre-check
和post-check。pre-check扩展名定义了这样一段时间间隔(以秒记):即在这段时间间隔之后,一个对象在显示给用户之前应被选中进行更新。选中对象也可以发生在该对象已经显示给用户之后,但是,要保证在用户下次想要看这个对象时,被高速缓存起来的副本是更新过的。post-check扩展名定义了这样一段时间间隔(以秒记):即在这段时间之后,在显示给用户之前,该对象被选中进行更新。因为这两个扩展名是对HTTP头信息的扩充,所以,它们只能用于通过HTTP协议进行检索的页面上。另外,服务器必须产生HTTP
1.1响应。Internet Information Server (IIS) 4.0及其以后版本均支持这一特性。
通过改变EXPIRES属性以及使用这两个控制高速缓存的扩展名,可以更快地与服务器连接并能更迅速地提交内容。Internet Explorer 5可以提高你的网站在用户的机器上的性能表现。另外,内容可以在后台被更新并在以后的访问中显示出来.
//4
请求该页面就出现下载保存窗口。
//5
. 二进制流,不知道下载文件类型。
//6
表示要下载的文件类型是 .xls 关于这个参数,可以去百度 ‘’ HTTP Content-type ‘’ 。http://www.cnblogs.com/benpaodelulu/p/7289860.html
//7
提示用户将当前文件保存到本地。
//8
//attachment --- 作为附件下载
//inline --- 在线打开
作为附件下载,文件名是 测试.xlsx
//9
Content-Transfer-Encoding: 参数
"BASE64" / "QUOTED-PRINTABLE" /
"8BIT" / "7BIT" /
"BINARY" / x-token
8bit和binary都表示传输的内容是未编码的原始数据。
但是根据邮件传输的相关协议,每行最多1000个字符。8bit表示数据符合这个协议要求,binary表示不一定符合(可能有超过1000字符的行)。
BASE64 意味着身体是Base64编码ASCII,原本ISO-8859-1数据编码,并将该字符集在解码后再次设置(也就是说,本来是base64,解码以后再设置成base64编码)。
说明文档: https://www.w3.org/Protocols/rfc1341/5_Content-Transfer-Encoding.html
Cache-Control头域
Cache-Control指定请求和响应遵循的缓存机制。在请求消息或响应消息中设置Cache-Control并不会修改另一个消息处理过程中的缓存处理过程。请求时的缓存指令包括no-cache、no-store、max-age、max-stale、min-fresh、only-if-cached,响应消息中的指令包括public、private、no-cache、no-store、no-transform、must-revalidate、proxy-revalidate、max-age。各个消息中的指令含义如下:
Public指示响应可被任何缓存区缓存。
Private指示对于单个用户的整个或部分响应消息,不能被共享缓存处理。这允许服务器仅仅描述当用户的部分响应消息,此响应消息对于其他用户的请求无效。
no-cache指示请求或响应消息不能缓存
no-store用于防止重要的信息被无意的发布。在请求消息中发送将使得请求和响应消息都不使用缓存。
max-age指示客户机可以接收生存期不大于指定时间(以秒为单位)的响应。
min-fresh指示客户机可以接收响应时间小于当前时间加上指定时间的响应。
max-stale指示客户机可以接收超出超时期间的响应消息。如果指定max-stale消息的值,那么客户机可以接收超出超时期指定值之内的响应消息。
HTTP消息报头包括普通报头、请求报头、响应报头、实体报头。
普通报头中的Cache-Control用于指定缓存指令,缓存指令是单向的(响应中出现的缓存指令在请求中未必会出现),且是独立的(一个消息的缓存指令不会影响另一个消息处理的缓存机制),HTTP1.0使用的类似的报头域为Pragma。
请求时的缓存指令包括:no-cache(用于指示请示或响应消息不能缓存)、no-store、max-age、max-stale、min-fresh、only-if-cached;
响应时的缓存指令包括:public、private、no-cache、no-store、no-transform、must-revalidate、proxy-revalidate、max-age、s-maxage。
例:为了指示IE浏览器(客户端)不要缓存页面,服务器端如下:
Header(“Cache-Control”, “no-cache”);
Header(“Pragma”, “no-cache”);作用相当于上行代码,通常两者合用
Expires实体报头域给出响应过期的日期和时间。为了让代理服务器或浏览器在一段时间以后更新缓存中(再次访问曾访问过的页面时,直接从缓存中加载,缩短响应时间和降低服务器负载)的页面,我们可以使用Expires实体报头域指定页面过期时间。例:Expires:Thu,15
Sep 2006 16:23:12 GMT
HTTP1.1的客户端和缓存必须将其他非法的日期格式(包括0)看作已经过期。如:为了让浏览器不缓存页面,也可以利用Expires实体报头域,设置为0,
header头 下载文件 参数详解的更多相关文章
- Linux ifconfig-etho文件参数详解
1.ifcfg-eth0文件参数详解 DEVICE 网卡名称/网络接口的名称BOOTPROTO 系统启动地址协议 常用参数: none:不使用启动地址协议,none禁止DHCP bootp:BOOTP ...
- 基于php下载文件的详解
本篇文章是对php下载文件进行了详细的分析介绍,需要的朋友参考下 php下载文件,比如txt文件. 出现的效果就是,弹出浏览器自带的下载框,出现另存为操作.有时候会出现内存溢出和超时的现象. 超时的话 ...
- Dockerfile文件参数详解
参考: https://www.jianshu.com/p/e4b31ca37043 https://blog.csdn.net/u010246789/article/details/54139168 ...
- autoIT 自动化上传/下载文件图文详解【python selenium】
情景: 在用selenium进行web页面自动化时,时不时会遇到上传附件的情况,常见的情况就是一个上传按钮,点击后弹出windows窗口,选择文件后上传,如下图1所示 图1 这种情况超出了seleni ...
- windows下命令行终端使用rz上传文件参数详解
rz命令: (X) = option applies to XMODEM only (Y) = option applies to YMODEM only (Z) = option applies t ...
- grub.conf文件参数详解
Grub是Linux的下系统启动器之一(另一个名为Lilo),grub.conf相当于 windows下的boot.ini,都是存放启动项设置和信息的,如果你熟悉boot.ini的设置的话相信也可以很 ...
- .rdp 文件参数详解
Overview of .rdp file settings Setting Type Default value Description and possible values Settable f ...
- Scrapy框架——介绍、安装、命令行创建,启动、项目目录结构介绍、Spiders文件夹详解(包括去重规则)、Selectors解析页面、Items、pipelines(自定义pipeline)、下载中间件(Downloader Middleware)、爬虫中间件、信号
一 介绍 Scrapy一个开源和协作的框架,其最初是为了页面抓取 (更确切来说, 网络抓取 )所设计的,使用它可以以快速.简单.可扩展的方式从网站中提取所需的数据.但目前Scrapy的用途十分广泛,可 ...
- http头文件User-Agent详解【转载】
原文地址:http://blog.csdn.net/andybbc/article/details/50587359 http头文件User-Agent详解 什么是User-Agent User-Ag ...
随机推荐
- 记一次阿里云ECS服务器图片资源迁移至 阿里云 oss
系统用户上传的图片资源放在ECS服务器,图片要做cdn加速,图片量越来越大(第一年200G,还在用户再增加图片量疯狂增长)备份是个问题. 决定迁移至 oss.前端直接上传oss 后台做签名,回调入库图 ...
- Linux中文件夹访问权限不足
经常操作Linux服务器,远程访问会遇到403问题,本篇讲述nginx下文件权限的修改. 1.命令修改该文件夹的权限 chmod -R 755 /usr/local/.... 文件夹的路径 2.修 ...
- maven作用
1.控制项目间依赖关系方案 A项目依赖B项目的某些功能.将B项目打包为jar,并在A项目的Library下导入B的jar文件. 这样做有着很明显的缺点: 1.如果在开发过程中,发现B中的 ...
- 在电脑端同时安装Python2,Python3
参考文档:http://www.cnblogs.com/zhengyihan1216/p/6011640.html 重点: 1.安装路径最好在一起,方便管理 2.安装路径下不建议有空格 3.Pytho ...
- C# Winform 通过Socket实现客户端和服务端TCP通信
操作界面如下: 1.声明Socket 第一个参数:寻址方式,第二个参数:传输数据的方式,第三个参数:通信协议 Socket socket = new Socket(AddressFamily.Inte ...
- WEEK1
#变量 var1: name = input('name:') age = input('age:) job = input('job:) salary = input('salary:) info ...
- 7ci
- 北航OO第二单元总结
电梯调度的设计策略 第一次作业是单部多线程傻瓜电梯 这次作业的电梯名副其实是一部傻瓜电梯,每次只能运一个人.出于线程安全的考虑,选择了阻塞队列.然后按照先来先服务的原则服务下一个指令.没有什么复杂的设 ...
- python day18 作业 Django 开发主机管理系统
http://www.cnblogs.com/liang2580/p/9248803.html
- python机器可读数据-csv
逗号分隔值(Comma-Separated Values,CSV) 1 csv数据 还有一种数据类型,叫制表分隔值(tab-separated values,TSV)数据,有时与CSV归为一类. 若文 ...