首頁 >後端開發 >php教程 >PHP輸出http狀態碼以及常用狀態碼

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

WBOY
WBOY原創
2016-08-08 09:19:392824瀏覽
header("HTTP/1.1 403 Forbidden");
echo <<<sql
        <!DOCTYPE html>
        <html lang="en">
        	<head>
        		<meta charset="utf-8">
				<meta name="viewport" c 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用於指定客戶端應對應的某些動作。 
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 次至 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)

版權聲明:本文為部落客原創文章,未經部落客允許不得轉載。

以上就介紹了PHP輸出http狀態碼以及常用狀態碼,包含了方面的內容,希望對PHP教學有興趣的朋友有幫助。

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn