PHP輸出http狀態碼以及常用狀態碼

header("HTTP/1.1 403 Forbidden");
echo <<<sql
        <!DOCTYPE html>
        <html lang="en">
        	<head>
        		<meta charset="utf-8">
				<meta name="viewport" content="initial-scale=1, minimum-scale=1, width=device-width">
				<title>Error 404 Not Found</title>
			</head>
			<body>
		  		<H1>Not Found</H1> <p><ins>That’s an error.</ins></p>
		  		<p>The requested URL <code><?php echo dirname({$_SERVER["SCRIPT_NAME"]});?></code> was not found on this server.  
		  		<ins>That’s all we know.</ins></p>
		  	</body>
		</html>
        <HTML>
            <HEAD>
                <meta charset="utf-8">
                <TITLE>404 Not Found</TITLE>
            </HEAD>
            <BODY>
                <H1>Not Found</H1>
                    The requested URL <?php echo dirname({$_SERVER["SCRIPT_NAME"]});?> was not found on this server.<P>
                <HR>
                <ADDRESS>Web Server at {$_SERVER["SERVER_NAME"]} Port {$_SERVER["SERVER_PORT"]}</ADDRESS>
            </BODY>
        </HTML>
sql;



http://www.w3.org/Protocols/rfc2616/rfc2616
Hypertext Transfer Protocol -- HTTP/1.1


http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html
100-199 用於指定客戶端應相應的某些動作。 
200-299 用於表示請求成功 理解和接受。 
300-399 用於已經移動的文件並且常被包含在定位頭信息中指定新的地址信息。 
400-499 用於指出客戶端的錯誤。 
500-599 用於支持服務器錯誤。 


[Informational 1xx]  信息化
100="Continue" 繼續:如果服務器收到頭信息中帶有100-continue的請求,這是指客戶端詢問是否可以在後續的請求中發送附件。在這種情況下,服務器用100(SC_CONTINUE)允許客戶端繼續或用417 (Expectation Failed)告訴客戶端不同意接受附件。這個狀態碼是 HTTP 1.1中新加入的。 
101="Switching Protocols"  交換協議:服務器理解並願意遵守客戶的要求,通過升級消息頭字段,改變在此連接使用的應用協議。

[Successful 2xx]  成功
>>>200="OK"  成功
201="Created"  創建:請求已經完成,導致創建一個新的資源。應在定位頭信息中給出它的URL。
202="Accepted"  接受:處理請求已被接受,但處理還未完成。
203="Non-Authoritative Information"  非授權信息
>>>204="No Content"  沒有內容:服務器已經完成請求,但沒有返回任何內容。
205="Reset Content" 重置內容:該服務器已完成該請求,該用戶代理應重置引起該請求的文檔視圖,用於強迫瀏覽器清除表單域。這是 HTTP 1.1中新加入的。 
206="Partial Content" 部分內容:在服務器完成了一個包含Range頭信息的局部請求時被髮送的

[Redirection 3xx]  重定向
300="Multiple Choices"  多種選擇:表示被請求的文檔可以在多個地方找到,並將在返回的文檔中列出來。如果服務器有首選設置,首選項將會被列於定位響應頭信息中。 
>>>301="Moved Permanently"  永久移動:所請求的資源被分配一個新的永久性URI並且未來的任何引用這個資源應該使用這個返回的URI,瀏覽器會自動連接到新的URL。  注意:當自動重定向一個POST請求收到一個301狀態碼,一些現有的HTTP / 1.0用戶代理將錯誤地改變成一個GET請求
>>>302="Found"  發現:請求的資源暫時駐留在臨時的URI。與301有些類似,只是定位頭信息中所給的URL應被理解爲臨時交換地址而不是永久的。注意:在 HTTP 1.0中,消息是臨時移動(Moved Temporarily)的而不是被發現
303="See Other"  查看其它:對該請求的響應可以在一個不同的URI,應使用該資源的GET方法檢索。和 301、302 相似,只是如果最初的請求是POST,那麼新文檔(在定位頭信息中給出)要用 GET 找回。這個狀態碼是新加入 HTTP 1.1中的。
>>>304="Not Modified"  沒有修改:如果客戶有條件執行GET請求,允許訪問,但是文件沒有被修改,服務器應該回應這個狀態碼。
305="Use Proxy"  使用代理:必須通過代理訪問所請求的資源的位置字段。新加入 HTTP 1.1中。
306="(Unused)"  (未使用)306狀態代碼中使用之前版本的規範,不再使用,代碼是保留的
307="Temporary Redirect" 臨時重定向:所請求的資源暫時駐留在一個不同的URI。瀏覽器處理307狀態的規則與302相同。307狀態被加入到 HTTP 1.1中是由於許多瀏覽器在收到302響應時即使是原始消息爲POST的情況下仍然執行了錯誤的轉向。只有在收到303響應時才假定瀏覽器會在POST請求時重定向。添加這個新的狀態碼的目的很明確:在響應爲303時按照GET和POST請求轉向;而在307響應時則按照GET請求轉向而不是POST請求。

[Client Error 4xx]  客戶端錯誤
>>>400="Bad Request"  服務器不理解請求的語法。
>>>401="Unauthorized"  未經授權:請求需要進行用戶身份驗證,如果該請求已包含授權證書,則401響應表示已拒絕爲憑據。這個響應必須包含一個WWW-Authenticate的授權信息頭。
402="Payment Required"  支付所需:這段代碼保留以供將來使用。
>>>403="Forbidden"  禁止:服務器理解的請求,但拒絕履行它。
>>>404="Not Found"  未找到
405="Method Not Allowed" 不允許的方法:在請求行中指定的方法是不允許的請求URI標識的資源。指出請求方法(GET, POST, HEAD, PUT, DELETE, 等)對某些特定的資源不允許使用。
406="Not Acceptable"  不可接受:表示請求資源的MIME類型與客戶端中Accept頭信息中指定的類型不一致。
407="Proxy Authentication Required"  代理服務器身份驗證:此代碼類似於401(未經授權),但表示客戶端必須首先對其進行身份驗證。
408="Request Timeout"  請求超時:在服務器準備等待的時間內,客戶端沒有產生一個請求。新加入 HTTP 1.1中的。 
409="Conflict"  衝突:由於與資源的當前狀態發生衝突,無法完成該請求。該狀態通常與PUT請求一同使用,409狀態常被用於試圖上傳版本不正確的文件時。該狀態碼是新加入 HTTP 1.1中的。 
>>>410="Gone"  不見了:所請求的資源不再是可用的服務器,也沒有轉發地址。告訴客戶端所請求的文檔已經不存在並且沒有更新的地址。410狀態不同於404,410是在指導文檔已被移走的情況下使用,而404則用於未知原因的無法訪問。該狀態碼是新加入 HTTP 1.1中的。
411="Length Required"  長度必需:服務器拒絕接受請求沒有定義內容長度。表示服務器不能處理請求(假設爲帶有附件的POST請求),除非客戶端發送Content-Length頭信息指出發送給服務器的數據的大小。該狀態是新加入 HTTP 1.1的。 
412="Precondition Failed"  前提條件失敗:在一個或多個請求頭字段在服務器上進行測試時,在一個或多個請求頭域中給出的前提條件。指出請求頭信息中的某些先決條件是錯誤的。該狀態是新加入 HTTP 1.1的。 
413="Request Entity Too Large"  請求實體太大:告訴客戶端現在所請求的文檔比服務器現在想要處理的要大。如果服務器認爲能夠過一段時間處理,則會包含一個Retry-After的響應頭信息。該狀態是新加入 HTTP 1.1的。 
414="Request-URI Too Long"  請求URI太長:狀態用於在URI過長的情況時。這裏所指的“URI”是指URL中主機、域名及端口號之後的內容。新加入 HTTP 1.1的。 
415="Unsupported Media Type"  不支持的媒體類型:請求所帶的附件的格式類型服務器不知道如何處理。該狀態是新加入 HTTP 1.1的。 
416="Requested Range Not Satisfiable"  請求範圍不符合:表示客戶端包含了一個服務器無法滿足的Range頭信息的請求。該狀態是新加入 HTTP 1.1的。
417="Expectation Failed"  期望失敗:如果服務器得到一個帶有100-continue值的Expect請求頭信息,這是指客戶端正在詢問是否可以在後面的請求中發送附件。在這種情況下,服務器也會用該狀態(417)告訴瀏覽器服務器不接收該附件或用100 狀態告訴客戶端可以繼續發送附件。該狀態是新加入 HTTP 1.1的。

[Server Error 5xx]  服務器錯誤
>>>500="Internal Server Error"  內部服務器錯誤
>>>501="Not Implemented"  無法執行:服務器不支持完成請求所需的功能。告訴客戶端服務器不支持請求中要求的功能。例如,客戶端執行了如PUT這樣的服務器並不支持的命令。 
>>>502="Bad Gateway"  錯誤的網關:服務器作爲網關或代理,從上游服務器收到無效響應在試圖滿足訪問請求。該狀態指出接收服務器接收到遠端服務器的錯誤響應。 
>>>503="Service Unavailable"  服務不可用:服務器目前無法處理請求由於暫時過載或服務器的維護。一些服務器可能希望 簡單地拒絕連接。例如,如果某些線程或數據庫連接池已經沒有空閒則服務器應返回這個頭信息。服務器可提供一個Retry-After頭信息告訴客戶端什麼時候可以再試一次。 
504="Gateway Timeout"  網關超時:它指出接收服務器沒有從遠端服務器得到及時的響應。該狀態是新加入 HTTP 1.1的。 
505="HTTP Version Not Supported"  HTTP版本不支持:服務器不支持,或者拒絕支持的HTTP協議的版本,是在請求消息中使用。該狀態是新加入 HTTP 1.1的。


簡潔版:


成功2XX        成功處理了請求的狀態碼。
200                   服務器已成功處理了請求並提供了請求的網頁。
204                   服務器成功處理了請求,但沒有返回任何內容。                         

重定向3XX      每次請求中使用重定向不要超過 5 次。
301                   請求的網頁已永久移動到新位置。當URLs發生變化時,使用301代碼。搜索引擎索引中保存新的URL。
302                   請求的網頁臨時移動到新位置。搜索引擎索引中保存原來的URL。
304                   如果網頁自請求者上次請求後沒有更新,則用304代碼告訴搜索引擎機器人,可節省帶寬和開銷。

客戶端錯誤4XX  表示請求可能出錯,妨礙了服務器的處理。
400                   服務器不理解請求的語法。
403                   服務器拒絕請求。
404                   服務器找不到請求的網頁。服務器上不存在的網頁經常會返回此代碼。
410                   請求的資源永久刪除後,服務器返回此響應。該代碼與 404(未找到)代碼相似,
但在資源以前存在而現在不存在的情況下,有時用來替代404 代碼。如果資源已永久刪除,應當使用 301 指定資源的新位置。

服務器錯誤5XX  表示服務器在處理請求時發生內部錯誤。這些錯誤可能是服務器本身的錯誤,而不是請求出錯。
500                   服務器遇到錯誤,無法完成請求。
503                   服務器目前無法使用(由於超載或停機維護)。通常,這只是暫時狀態。

詳細分解:
2XX  成功
200  正常;請求已完成。
201  正常;緊接 POST 命令。
202  正常;已接受用於處理,但處理尚未完成。
203  正常;部分信息 — 返回的信息只是一部分。
204  正常;無響應 — 已接收請求,但不存在要回送的信息。

3XX  重定向
301  已移動 — 請求的數據具有新的位置且更改是永久的。
302  已找到 — 請求的數據臨時具有不同 URI。
303  請參閱其它 — 可在另一 URI 下找到對請求的響應,且應使用 GET 方法檢索此響應。
304  未修改 — 未按預期修改文檔。
305  使用代理 — 必須通過位置字段中提供的代理來訪問請求的資源。
306  未使用 — 不再使用;保留此代碼以便將來使用。

4XX  客戶機中出現的錯誤
400  錯誤請求 — 請求中有語法問題,或不能滿足請求。
401  未授權 — 未授權客戶機訪問數據。
402  需要付款 — 表示計費系統已有效。
403  禁止 — 即使有授權也不需要訪問。
404  找不到 — 服務器找不到給定的資源;文檔不存在。
407  代理認證請求 — 客戶機首先必須使用代理認證自身。
415  介質類型不受支持 — 服務器拒絕服務請求,因爲不支持請求實體的格式。

5XX  服務器中出現的錯誤
500  內部錯誤 — 因爲意外情況,服務器不能完成請求。
501  未執行 — 服務器不支持請求的工具。
502  錯誤網關 — 服務器接收到來自上游服務器的無效響應。
503  無法獲得服務 — 由於臨時過載或維護,服務器無法處理請求。
504 Gateway Timeout
作爲網關或者代理工作的服務器嘗試執行請求時,未能及時從上游服務器(URI標識出的服務器,例如HTTP、FTP、LDAP)或者輔助服務器(例如DNS)收到響應。
注意:某些代理服務器在DNS查詢超時時會返回400或者500錯誤
505 HTTP Version Not Supported
服務器不支持,或者拒絕支持在請求中使用的 HTTP 版本。這暗示着服務器不能或不願使用與客戶端相同的版本。響應中應當包含一個描述了爲何版本不被支持以及服務器支持哪些協議的實體。
506 Variant Also Negotiates
由《透明內容協商協議》(RFC 2295)擴展,代表服務器存在內部配置錯誤:被請求的協商變元資源被配置爲在透明內容協商中使用自己,因此在一個協商處理中不是一個合適的重點。
507 Insufficient Storage
服務器無法存儲完成請求所必須的內容。這個狀況被認爲是臨時的。WebDAV (RFC 4918)
508 Loop Detected
服務器發現請求中出現一個無窮循環
509 Bandwidth Limit Exceeded
服務器達到帶寬限制。這不是一個官方的狀態碼,但是仍被廣泛使用。
510 Not Extended
獲取資源所需要的策略並沒有沒滿足。(RFC 2774)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章