header()函数使用说明


Posted in PHP onNovember 23, 2006

一、作用:  
~~~~~~~~~  
       PHP只是以HTTP协议将HTML文档的标头送到浏览器,告诉浏览器具体怎么处理这个页面,至于传送的内容则需要熟悉一下HTTP协议了,与PHP无关了,可参照http://www.w3.org/Protocols/rfc2616/rfc2616。  
       传统的标头一定包含下面三种标头之一,并只能出现一次。  
       Location:  xxxx:yyyy/zzzz  
       Content-Type:  xxxx/yyyy  
       Status:  nnn  xxxxxx  
 
二、先来了解一下HTTP协议的运作方式
  
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
       HTTP协议是基于请求/响应范式的。一个客户机与服务器建立连接后,发送一个请求给服务器,请求方式的格式为,统一资源标识符、协议版本号,后边是MIME信息包括请求修饰符、客户机信息和可能的内容。服务器接到请求后,给予相应的响应信息,其格式为一个状态行包括信息的协议版本号、一个成功或错误的代码,后边是MIME信息包括服务器信息、实体信息和可能的内容。  
       它分四个过程,在HTTP协议中,服务端是指提供HTTP服务的部分,客户端是指你使用的浏览器或者下载工具等等。在通讯时,由客户端发出请求连接,服务端建立连接;然后,客户端发出HTTP请求(Request),服务端返回响应信息(Respond),由此完成一个HTTP操作。  
 
三、HTTP协议状态码表示的意思
  
~~~~~~~~~~~~~~~~~~~~~~~~~~~~  

1××

保留  

2××

表示请求成功地接收  

3××

为完成请求客户需进一步细化请求  

4××

客户错误  

5××

服务器错误  

四、操作实例:  
~~~~~~~~~~~~~  
   <1>  重定向功能,这种最常见  
       <?php  
           Header("Location:  http://www.php.net");    
       ?>  

   <2>  强制用户每次访问这个页面时获取最新资料,而不是使用存在客户端的缓存。  
       <?php  
           //告诉浏览器此页面的过期时间(用格林威治时间表示),只要是已经过去的日期即可。  
           header("Expires:  Mon,  26  Jul  1970  05:00:00  GMT");  
           //告诉浏览器此页面的最后更新日期(用格林威治时间表示)也就是当天,目的就是强迫浏览器获取最新资料  
           header("Last-Modified:  "  .  gmdate("D,  d  M  Y  H:i:s")  .  "GMT");  
           //告诉客户端浏览器不使用缓存  
           header("Cache-Control:  no-cache,  must-revalidate");  
           //参数(与以前的服务器兼容),即兼容HTTP1.0协议  
           header("Pragma:  no-cache");      
           //输出MIME类型  
           header("Content-type:  application/file");      
           //文件长度  
           header("Content-Length:  227685");      
           //接受的范围单位  
           header("Accept-Ranges:  bytes");  
           //缺省时文件保存对话框中的文件名称  
           header("Content-Disposition:  attachment;  filename=$filename");  
       ?>  

   <3>  输出状态值到浏览器,主要用于访问权限控制  
       <?php  
           header('HTTP/1.1  401  Unauthorized');  
           header('status:  401  Unauthorized');  
       ?>  
           比如要限制一个用户不能访问该页,则可设置状态为404,如下所示,这样浏览器就显示为即该页不存在  
       <?php  
           header('HTTP/1.1  404  Not  Found');  
           header("status:  404  Not  Found");  
       ?> 

PHP 相关文章推荐
php 中英文语言转换类代码
Aug 11 PHP
PHP获取当前url的具体方法全面解析
Nov 26 PHP
php的hash算法介绍
Feb 13 PHP
表单提交错误后返回内容消失问题的解决方法(PHP网站)
Oct 20 PHP
PHP实现伪静态方法汇总
Jan 13 PHP
PHP代码维护,重构变困难的4种原因分析
Jan 25 PHP
通过chrome浏览器控制台(Console)进行PHP Debug的方法
Oct 19 PHP
PHP编程获取图片的主色调的方法【基于Imagick扩展】
Aug 02 PHP
PHP调用API接口实现天气查询功能的示例
Sep 21 PHP
php大小写转换函数(strtolower、strtoupper)用法介绍
Nov 17 PHP
PHP观察者模式示例【Laravel框架中有用到】
Jun 15 PHP
thinkphp5框架实现的自定义扩展类操作示例
May 16 PHP
如何使用脚本模仿登陆过程
Nov 22 #PHP
php5 and xml示例
Nov 22 #PHP
PHP中的类-什么叫类
Nov 20 #PHP
解决phpmyadmin 乱码,支持gb2312和utf-8
Nov 20 #PHP
PHP配置心得包含MYSQL5乱码解决
Nov 20 #PHP
PHP+MySQL5.0中文乱码解决方法
Nov 20 #PHP
PHP的面试题集,附我的答案和分析(一)
Nov 19 #PHP
You might like
让你同时上传 1000 个文件 (一)
2006/10/09 PHP
PHP调用VC编写的COM组件实例
2014/03/29 PHP
php查询mysql数据库并将结果保存到数组的方法
2015/03/18 PHP
分享ThinkPHP3.2中关联查询解决思路
2015/09/20 PHP
golang与php实现计算两个经纬度之间距离的方法
2016/07/22 PHP
PHP常用字符串函数小结(推荐)
2018/08/05 PHP
PHP7 mongoDB扩展使用的方法分享
2019/05/02 PHP
PHP检测一个数组有没有定义的方法步骤
2019/07/20 PHP
Extjs中ComboBoxTree实现的下拉框树效果(自写)
2013/05/28 Javascript
解析js如何获取当前url中的参数值并复制给input
2013/06/23 Javascript
鼠标焦点离开文本框时验证的js代码
2013/07/19 Javascript
js计算德州扑克牌面值的方法
2015/03/04 Javascript
jQuery实现验证年龄简单思路
2016/02/24 Javascript
js实现导航吸顶效果
2017/02/24 Javascript
react-redux中connect()方法详细解析
2017/05/27 Javascript
vue的过滤器filter实例详解
2018/09/17 Javascript
Vue前后端不同端口的实现方法
2018/09/19 Javascript
Intellij IDEA搭建vue-cli项目的方法步骤
2018/10/20 Javascript
Electron vue的使用教程图文详解
2019/07/05 Javascript
微信小程序吸底区域适配iPhoneX的实现
2020/04/09 Javascript
如何在node环境实现“get数据解析”代码实例
2020/07/03 Javascript
vue 监听窗口变化对页面部分元素重新渲染操作
2020/07/28 Javascript
python批量修改文件名的实现代码
2014/09/01 Python
详解Python的Django框架中manage命令的使用与扩展
2016/04/11 Python
python中Switch/Case实现的示例代码
2017/11/09 Python
Python 数据处理库 pandas进阶教程
2018/04/21 Python
Python操作SQLite数据库过程解析
2019/09/02 Python
Python爬虫图片懒加载技术 selenium和PhantomJS解析
2019/09/18 Python
详解Python3定时器任务代码
2019/09/23 Python
Python Numpy数组扩展repeat和tile使用实例解析
2019/12/09 Python
new_zeros() pytorch版本的转换方式
2020/02/18 Python
介绍Java的内部类
2012/10/27 面试题
2014年社区学雷锋活动总结
2014/03/09 职场文书
2014年医院党建工作总结
2014/12/20 职场文书
大学迎新生欢迎词
2015/09/29 职场文书
导游词范文之颐和园/重庆/云台山
2019/09/10 职场文书