PHP中如何Header出状态代码 (转)

---恢复内容开始---

在照彭武兴先生的《PHP(PHP培训 php教程 ) BIBLE》中所述,header可以送出Status标头,如

header("Status: 404 Not Found");

?>

就可以让用户浏览器出现文件找不到的404错误,但是我试了这样是不行的。

后来我到w3.org上查了http的相关资料,终于试出来了如何Header出状态代码(Status),与大家分享。

其实应该是这样的:

Header("http/1.1 403 Forbidden");

?>

第一部分为HTTP协议的版本(HTTP-Version)

第二部分为状态代码(Status)

第三部分为原因短语(Reason-Phrase)

三部分中间用一个空格分开,且中间不能有回车,第一部分和第二部分是必需的,第三部分则是给人看的,可写可不写甚至乱写。

还有,这一句的输出必须在Html文件的第一行。

下面我给出各代码所代表的意思(是从w3.org上查到的,够权威了):

  * 1xx: Informational - Request received, continuing process

  * 2xx: Success - The action was successfully received, understood,

  and accepted

  * 3xx: Redirection - Further action must be taken in order to

  complete the request

  * 4xx: Client Error - The request contains bad syntax or cannot be

  fulfilled

  * 5xx: Server Error - The server failed to fulfill an apparently

  valid request

       | "100" ; Continue

       | "101" ; Switching Protocols

       | "200" ; OK

       | "201" ; Created

       | "202" ; Accepted

       | "203" ; Non-Authoritative Information

       | "204" ; No Content

       | "205" ; Reset Content

       | "206" ; Partial Content

       | "300" ; Multiple Choices

       | "301" ; Moved Permanently

       | "302" ; Moved Temporarily

       | "303" ; See Other

       | "304" ; Not Modified

       | "305" ; Use Proxy

       | "400" ; Bad Request

       | "401" ; Unauthorized

       | "402" ; Payment Required

       | "403" ; Forbidden

       | "404" ; Not Found

       | "405" ; Method Not Allowed

       | "406" ; Not Acceptable

       | "407" ; Proxy Authentication Required

       | "408" ; Request Time-out

       | "409" ; Conflict

       | "410" ; Gone

       | "411" ; Length Required

       | "412" ; Precondition Failed

       | "413" ; Request Entity Too Large

       | "414" ; Request-URI Too Large

       | "415" ; Unsupported Media Type

       | "500" ; Internal Server Error

       | "501" ; Not Implemented

       | "502" ; Bad Gateway

       | "503" ; Service Unavailable

       | "504" ; Gateway Time-out

       | "505" ; HTTP Version not supported

---恢复内容结束---

时间: 2024-12-20 06:37:55

PHP中如何Header出状态代码 (转)的相关文章

当cpu飙升时,找出php中可能有问题的代码行

当你发现一个平时占用cpu比较少的进程突然间占用cpu接近100%时,你如何找到导致cpu飙升的原因?我的思路是,首先找到进程正在执行的代码行,从而确定可能有问题的代码段.然后,再仔细分析有问题的代码段,从而找出原因. 如果你的程序使用的是c.c++编写,那么你可以很容易的找到正在执行的代码行.但是,程序是php编写的,如何找到可能有问题的代码行呢?这个问题就是本文要解决的问题. 背景知识: 如果你对c语言不熟悉的话,可以略过,直接看 示例演示. 大家都知道php是一个解释性语言.用户编写的ph

关于Unity中Mecanim动画的动画状态代码控制与代码生成动画控制器

对于多量的.复杂的.有规律的控制器使用代码生成 动画状态代码控制 1:每个动画状态,比如进入状态,离开状态, 等都有可能需要代码来参与和处理,比如,进入这个动画单元后做哪些事情,来开这个动画单元后做哪些事情,为了解决这个问题,unity允许每个动画单元来绑定一个脚本代码,这个脚本代码必须继承于StateMachineBehaviour;2: 可以在动画状态的Add Behaviour上添加挂载一个脚本到动画状态;3: StateMachineBehaviour主要接口: (1)OnStateEn

如何从业务代码中抽离出可复用的微组件

背景 很多业务代码,掺杂着一些通用的大段逻辑:容易导致的后果是,当需要类似功能时,不得不重新写一道,或者复制出几乎相同的代码块,让系统的无序性蹭蹭蹭往上涨. 具有良好抽象思维的有心的开发者,则会仔细观察到这种现象,将这些通用的大块逻辑抽离出来,做成一个可复用的微组件,使得以后再做类似的事情,只需要付出很小的工作即可. 那么,如何从业务代码中抽离出可复用的微组件,使得一类事情只需要做一次,今后可以反复地复用呢? 本文将以一个例子来说明. 在业务开发中,常常需要根据一批 id 查到相对应的 name

IIS7 的 HTTP 状态代码列表 转

http://support.microsoft.com/kb/943891/zh-cn 日志文件位置 默认情况下,IIS 7.0.IIS 7.5 和 IIS 8.0 将日志文件放在以下文件夹中: inetpub\logs\Logfiles 此文件夹包含每个万维网网站的单独目录.默认情况下,每天会在目录中创建日志文件,并且日志文件使用日期重命名.例如,可能按以下方式命名日志文件: exYYMMDD.log HTTP 状态代码 本部分描述 IIS 7.0.IIS 7.5 和 IIS 8.0 使用的

服务器响应的生成:HTTP状态代码——HttpServletResponse接口应用

一 HTTP响应的格式              web服务器对客户端的响应一般包含:一个状态行,一些响应报头,一个空行和相应的文档构成.               1,状态行: 状态行由HTTP版本,一个状态代码以及一段对应状态代码的简短消息组成,表示请求是否被理解或被满足.HTTP版本由服务器决定.状态码一般由系统自动设置为200.也可以用Servlet设置状态码.消息巍峨自定义. 2,响应报. 3,空行 4,文档 二 如何设置状态代码 在向客户程序发送任何文档内容之前调用方法设置状态代码

[js]uploadify结合jqueryUI弹出框上传,js中的冒出的bug,又被ie坑了

引言 最近在一个项目中,在用户列表中需要对给没有签名样本的个别用户上传签名的样本,就想到博客园中上传图片使用弹出框方式,博客园具体怎么实现的不知道,只是如果自己来弄,想到两个插件的结合使用,在弹出框中使用uploadify插件进行上传,每次都会报错很是无语,最后找到解决方案,这里记录一下,算是对工作中遇到的bug的一个总结. bug 这是vs调试状态下,显示的信息.在浏览器端,点击第一次上传按钮,正常,将弹出框关闭后,第二次打开,就会出现问题: 第一次单击上传: 第二次,关闭弹出框,再次单击上传

android 自定义adapter和线程结合 + ListView中按钮滑动后状态丢失解决办法

adapter+线程 1.很多时候自定义adapter的数据都是来源于服务器的,所以在获取服务器的时候就需要异步获取,这里就需要开线程了(线程池)去获取服务器的数据了.但这样有的时候adapter的中没有数据. 如下面的代码: 这就是在initData中异步获取服务器的数据,然后实例化adatper,再将adapter赋给listView. 2.initData()中的代码是: 这里线程要睡眠5秒钟,是为了模仿网络的耗时操作 3.Handler: 在Handler中接收到数据后给list赋值后,

ASP.Net中的四种状态保持机制

本文档转载自http://blog.csdn.net/popping_dancer/article/details/7765464 因时间紧迫,未做个人笔记,仅参考. 这几天在学ASP.Net (就是传说中最难的东西)  上课刚听的时候的确有点听不懂 毕竟第一次接触每天晚上回来看视频的时候 才慢慢的恍然大悟 哦~~ 原来是这么回事呀 想必大牛们当初也是这样的感觉吧 哈哈 !今天来说说ASP.Net中的4种状态保持机制 状态保持机制?神马意思?别急 且听我下面慢慢道来 每个人上网可多有过这样的情况

HTTP状态代码(各种错误代码集合)

HTTP状态代码(各种错误代码集合)  100 Continue 初始的请求已经接受,客户应当继续发送请求的其余部分.(HTTP 1.1新) 101 Switching Protocols 服务器将遵从客户的请求转换到另外一种协议(HTTP 1.1新) 200 OK 一切正常,对GET和POST请求的应答文档跟在后面. 201 Created 服务器已经创建了文档,Location头给出了它的URL. 202 Accepted 已经接受请求,但处理尚未完成. 203 Non-Authoritat