header头 下载文件 参数详解

    header("Pragma: public");   //1

    header("Expires: 0"); //2
    header("Cache-Control:must-revalidate, post-check=0, pre-check=0");//3

    header("Content-Type:application/force-download");//4
    header("Content-Type:application/octet-stream");//5
    header("Content-Type:application/vnd.ms-excel;");//6

    header("Content-Type:application/download");//7
    header("Content-Disposition:attachment;filename=测试.xlsx");//8
    header("Content-Transfer-Encoding:binary");//9

//2

浏览器不会响应缓存

//1

Public指示响应可被任何缓存区缓存。

//3

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,

时间: 2024-10-10 02:23:31

header头 下载文件 参数详解的相关文章

RPM安装包-Spec文件参数详解与示例分析

spec文件是整个RPM包建立过程的中心,它的作用就如同编译程序时的Makefile文件. 1.Spec文件参数 spec文件包含建立一个RPM包必需的信息,包括哪些文件是包的一部分以及它们安装在哪个目录下.这个文件一般分为如下的几节: (1) Preamle(序言) 序言包含用户请求包的信息时所显示的内容.它可以包含包的功能描述.包的软件版本.版权信息和所属的包组等.Summary 是一行关于该软件包的描述,Name 是该软件包的基名,Version 是该软件的版本号,Release 是 RP

windows下命令行终端使用rz上传文件参数详解

rz命令: (X) = option applies to XMODEM only (Y) = option applies to YMODEM only (Z) = option applies to ZMODEM only -+, --append                append to existing files -a, --ascii                 ASCII transfer (change CR/LF to LF) -b, --binary       

Docker-Compose模板文件参数详解

前言 模板文件是使用compose的核心,涉及到的指令关键字比较多,但是大部分和docker run相关参数的含义都是类似的. 默认的模板文件名称为docker-compose.yml,为yaml格式,如下: version: "3" services: webapp: image: examples/web ports: - "80:80" volumes: - "/data" 注意每个服务都必须通过 image 指令指定镜像或 build 指

jquery的uploadify插件多文件上传配置参数详解

最近做了个多文件上传,需要限制上传文件类型的例子.以前没做过找了一些资料,下次有用.同时也给大家做参考. uploader: uploadify.swf 文件的相对路径,该swf文件是一个带有文字BROWSE的按钮,点击后淡出打开文件对话框,默认值:uploadify.swf. script: 后台处理程序的相对路径 .默认值:uploadify.php checkScript:用来判断上传选择的文 件在服务器是否存在的后台处理程序的相对路径 fileDataName:设置一个名字,在服务器处理

oracle dataguard主备库参数文件配置详解

主库参数详解: 保持同一个Data Guard中所有的DB_NAME相同 DB_NAME=ora11g 为一个数据库指定一个唯一的名称,该参数一经指定就不会发生改动除非DBA主动改动 DB_UNIQUE_NAME=ora11g_primary 初始化参数LOG_ARCHIVE_CONFIG用于控制发送归档日志到远程位置.接收远程归档日志,并指定Data  Guard配置的惟一数据库名,默认值为SEND,RECEIVE,NODG_CONFIG. 当设置该参数为SEND时,会激活发送归档日志到远程位

[转帖]XCopy复制文件夹命令及参数详解以及xcopy拷贝目录并排除特定文件

XCopy复制文件夹命令及参数详解以及xcopy拷贝目录并排除特定文件 https://www.cnblogs.com/smartsmile/p/7665979.html xcopy dirA dirB /s /e /y XCOPY是COPY的扩展,可以把指定的目录连文件和目录结构一并拷贝,但不能拷贝系统文件:使用时源盘符.源目标路径名.源文件名至少指定一个:选用/S时对源目录下及其子目录下的所有文件进行COPY.除非指定/E参数,否则/S不会拷贝空目录,若不指定/S参数,则XCOPY只拷贝源目

Windows DIB文件操作详解-4.使用DIB Section

前面讲了为了提高DIB的显示性能和效率,我们将DIB转换成DDB,但是这又遇到一个问题,如果我想操作DIB的数据的话,显然是不能使用DDB:一是因为DIB转DDB时发生了颜色转换,再就是DDB无法直接提取指定像素点的数据.那么我们怎么办呢,Windows使用一种折中的方式来达到这一目标(既提高了显示效率和性能,又可以直接操作像素点). 1.DIB Section存储和显示 Windows使用DIB块(DIB Section)来存储DIB数据,其内存结构示意图如下 其实,和我们自己读入DIB数据到

Nginx内置变量以及日志格式变量参数详解

Nginx内置变量以及日志格式变量参数详解 $args #请求中的参数值 $query_string #同 $args $arg_NAME #GET请求中NAME的值 $is_args #如果请求中有参数,值为"?",否则为空字符串 $uri #请求中的当前URI(不带请求参数,参数位于$args),可以不同于浏览器传递的$request_uri的值,它可以通过内部重定向,或者使用index指令进行修改,$uri不包含主机名,如"/foo/bar.html". $d

SWFTOOLS PDF2SWF 参数详解

转载至:http://blog.csdn.net/iamduoluo/article/details/6820329 SWFTools提供了一系列将各种文件转成swf的工具: font2swf.exe gif2swf.exe jpeg2swf.exe pdf2swf.exe png2swf.exe wav2swf.exe 具体的功能就顾名思义了. 其中把pdf转成swf的工具就是pdf2swf了.在命令行中运行pdf2swf src.pdf des.swf一般能满足需求.而命令行参数可以通过pd