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头 下载文件 参数详解的更多相关文章

  1. Linux ifconfig-etho文件参数详解

    1.ifcfg-eth0文件参数详解 DEVICE 网卡名称/网络接口的名称BOOTPROTO 系统启动地址协议 常用参数: none:不使用启动地址协议,none禁止DHCP bootp:BOOTP ...

  2. 基于php下载文件的详解

    本篇文章是对php下载文件进行了详细的分析介绍,需要的朋友参考下 php下载文件,比如txt文件. 出现的效果就是,弹出浏览器自带的下载框,出现另存为操作.有时候会出现内存溢出和超时的现象. 超时的话 ...

  3. Dockerfile文件参数详解

    参考: https://www.jianshu.com/p/e4b31ca37043 https://blog.csdn.net/u010246789/article/details/54139168 ...

  4. autoIT 自动化上传/下载文件图文详解【python selenium】

    情景: 在用selenium进行web页面自动化时,时不时会遇到上传附件的情况,常见的情况就是一个上传按钮,点击后弹出windows窗口,选择文件后上传,如下图1所示 图1 这种情况超出了seleni ...

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

    rz命令: (X) = option applies to XMODEM only (Y) = option applies to YMODEM only (Z) = option applies t ...

  6. grub.conf文件参数详解

    Grub是Linux的下系统启动器之一(另一个名为Lilo),grub.conf相当于 windows下的boot.ini,都是存放启动项设置和信息的,如果你熟悉boot.ini的设置的话相信也可以很 ...

  7. .rdp 文件参数详解

    Overview of .rdp file settings Setting Type Default value Description and possible values Settable f ...

  8. Scrapy框架——介绍、安装、命令行创建,启动、项目目录结构介绍、Spiders文件夹详解(包括去重规则)、Selectors解析页面、Items、pipelines(自定义pipeline)、下载中间件(Downloader Middleware)、爬虫中间件、信号

    一 介绍 Scrapy一个开源和协作的框架,其最初是为了页面抓取 (更确切来说, 网络抓取 )所设计的,使用它可以以快速.简单.可扩展的方式从网站中提取所需的数据.但目前Scrapy的用途十分广泛,可 ...

  9. http头文件User-Agent详解【转载】

    原文地址:http://blog.csdn.net/andybbc/article/details/50587359 http头文件User-Agent详解 什么是User-Agent User-Ag ...

随机推荐

  1. 网盘资源分享:你不知道的JavaScript(上)

    链接:https://pan.baidu.com/s/1UEBetOr2Z94oEeu5VsQYXQ 提取码:etts 复制这段内容后打开百度网盘手机App,操作更方便哦

  2. 解决Mac应用程序软件不出现在Launchpad里面的方法

    新装了几个软件,可是打开Lauchpad之后却在里面找不到,真是烦人!然后尝试了以下方法: 1.重启电脑,没用: 2.尝试打开“应用程序(英文名称:Applications)”并找到安装的软件,然后直 ...

  3. Java编程思想--控制执行流程

    java控制流程设计的关键字包括if-else,while,do-while,for,return,break,continue以及switch.(go-to) 1.while在迭代之前计算一次布尔表 ...

  4. 第一课——git的简介和基本使用

    windows中安装git: 1.安装Git 安装完,在命令行输入: $ git config --global user.name "Your Name" $ git confi ...

  5. react球形文字旋转标签

    /* * 球形文字旋转标签模块 * */ import React, {Component, PropTypes} from "react"; import ReactDOM fr ...

  6. https环境搭建(本地搭建)

    1.创建自签名证书 2. 在iis中绑定https 先解析一个域名. 运行网站 示不安全,点击继续浏览即可.在实际的环境中,你拿到的是一个实际的证书,所以不会产生类似的报告安全证书有问题.

  7. jenkins 关闭和重启的实现

    jerkins自带的重启手段重启过程缓慢,在jenkins的操作过程中可使用以下操作: 关闭Jenkins 只需要在访问jenkins服务器的网址url地址后加上exit.例如我jenkins的地址h ...

  8. spring boot读取classpath下的json文件

    import org.springframework.beans.factory.annotation.Value; import org.springframework.core.io.Resour ...

  9. NLog使用整理

    NLog使用中碰到的问题整理 1,日志写mysql数据库报错, 原因: 在sql语句中使用了mysql的函数now() 导致插入失败, 解决办法: 使用参数代替now(). 在nlog配置文件中设置  ...

  10. js获取元素属性值为空的原因和解决办法

    问题描述:js获取某元素的属性值为空 代码: <!-- css定义在head中 --> <style> #box{ width: 100px; height: 100px; b ...