HTTP(HTTP Status Code)狀態(tài)碼簡(jiǎn)介
HTTP狀態(tài)碼就是用以表示網(wǎng)頁(yè)服務(wù)器HTTP響應(yīng)狀態(tài)的3位數(shù)字代碼。
當(dāng)瀏覽訪(fǎng)問(wèn)一個(gè)網(wǎng)頁(yè)時(shí)况鸣,瀏覽器作為客戶(hù)端會(huì)向網(wǎng)頁(yè)所在服務(wù)器發(fā)出請(qǐng)求何乎。服務(wù)器則會(huì)返回一個(gè)包含HTTP狀態(tài)碼的信息頭(server header)用以響應(yīng)瀏覽器的請(qǐng)求昔搂。
幾個(gè)常見(jiàn)的HTTP狀態(tài)碼:
- 200 - 請(qǐng)求成功
- 301 - 資源(網(wǎng)頁(yè)等)被永久轉(zhuǎn)移到其它URL
- 404 - 請(qǐng)求的資源(網(wǎng)頁(yè)等)不存在
- 500 - 內(nèi)部服務(wù)器錯(cuò)誤
HTTP狀態(tài)碼由三個(gè)十進(jìn)制數(shù)字組成玲销,第一個(gè)十進(jìn)制數(shù)字定義了狀態(tài)碼的類(lèi)型,后兩個(gè)數(shù)字沒(méi)有分類(lèi)的作用摘符。每個(gè)狀態(tài)碼的第一個(gè)數(shù)字都代表了響應(yīng)的五種狀態(tài)之一痒玩。
分類(lèi) | 分類(lèi)描述 |
---|---|
1XX | 消息淳附,服務(wù)器收到請(qǐng)求议慰,需要請(qǐng)求者繼續(xù)執(zhí)行操作 |
2XX | 成功蠢古,操作被成功接收并處理 |
3XX | 重定向,需要進(jìn)一步的操作以完成請(qǐng)求 |
4XX | 請(qǐng)求錯(cuò)誤别凹,請(qǐng)求包含語(yǔ)法錯(cuò)誤或無(wú)法完成請(qǐng)求 |
5XX | 服務(wù)器錯(cuò)誤草讶,服務(wù)器在處理請(qǐng)求的過(guò)程中發(fā)生了錯(cuò)誤 |
一、消息類(lèi):代表請(qǐng)求已被接受炉菲,需要繼續(xù)處理堕战。
這類(lèi)響應(yīng)是臨時(shí)響應(yīng),只包含狀態(tài)行和某些可選的響應(yīng)頭信息拍霜,并以空行結(jié)束嘱丢。由于 HTTP/1.0 協(xié)議中沒(méi)有定義任何 1xx 狀態(tài)碼,所以除非在某些試驗(yàn)條件下祠饺,服務(wù)器禁止向此類(lèi)客戶(hù)端發(fā)送 1xx 響應(yīng)越驻。
狀態(tài)碼 | 名稱(chēng) | 描述 |
---|---|---|
100 | Continue | (繼續(xù))表示告知客戶(hù)端繼續(xù)發(fā)送連接請(qǐng)求。 |
101 | Switching Protocols | (切換協(xié)議)通知客戶(hù)端切換其它的協(xié)議來(lái)完成這個(gè)請(qǐng)求道偷。 |
100:這個(gè)臨時(shí)響應(yīng)是用來(lái)通知客戶(hù)端它的部分請(qǐng)求已經(jīng)被服務(wù)器接收缀旁,且仍未被拒絕。
- 客戶(hù)端應(yīng)當(dāng)繼續(xù)發(fā)送請(qǐng)求的剩余部分勺鸦,或者如果請(qǐng)求已經(jīng)完成并巍,忽略這個(gè)響應(yīng)。
- 服務(wù)器必須在請(qǐng)求完成后向客戶(hù)端發(fā)送一個(gè)最終響應(yīng)换途。
101:服務(wù)器已經(jīng)理解了客戶(hù)端的請(qǐng)求懊渡,并將通過(guò)Upgrade 消息頭通知客戶(hù)端采用不同的協(xié)議來(lái)完成這個(gè)請(qǐng)求。在發(fā)送完這個(gè)響應(yīng)最后的空行后军拟,服務(wù)器將會(huì)切換到在Upgrade消息頭中定義的那些協(xié)議剃执。
二、成功類(lèi):表示請(qǐng)求已成功被服務(wù)器接收吻谋,處理等忠蝗。
狀態(tài)碼 | 名稱(chēng) | 描述 |
---|---|---|
200 | OK | (成功)請(qǐng)求已成功。服務(wù)器成功返回網(wǎng)頁(yè)漓拾。 |
201 | Created | (已創(chuàng)建)請(qǐng)求已成功并且服務(wù)器創(chuàng)建了新的資源阁最。 |
202 | Accepted | (已接受)服務(wù)器已接受請(qǐng)求,但尚未處理骇两。 |
203 | Non-Authoritative Information | (非授權(quán)信息)服務(wù)器已成功處理了請(qǐng)求速种,但返回的數(shù)據(jù)可能來(lái)自本地,也可能來(lái)自第三方低千。 |
204 | No Content | (無(wú)內(nèi)容)服務(wù)器成功處理了請(qǐng)求配阵,但沒(méi)有返回任何內(nèi)容馏颂。 |
205 | Reset Content | (重置內(nèi)容)服務(wù)器成功處理了請(qǐng)求,但沒(méi)有返回任何內(nèi)容棋傍。 |
206 | Partial Content | (部分內(nèi)容)服務(wù)器成功處理了部分 GET 請(qǐng)求救拉。 |
200:一般用于GET與POST請(qǐng)求,請(qǐng)求所希望的響應(yīng)頭或數(shù)據(jù)體將隨此響應(yīng)返回瘫拣。
- GET響應(yīng)中發(fā)送對(duì)應(yīng)于所請(qǐng)求資源的實(shí)體;
- HEAD與所請(qǐng)求的資源相對(duì)應(yīng)的實(shí)體頭部字段在沒(méi)有任何消息體的響應(yīng)中發(fā)送;
- POST一個(gè)描述或包含動(dòng)作結(jié)果的實(shí)體;
- TRACE包含終端服務(wù)器接收到的請(qǐng)求消息的實(shí)體亿絮。
201: 新的資源已經(jīng)依據(jù)請(qǐng)求的需要而建立,新創(chuàng)建的資源可以由響應(yīng)實(shí)體中返回的URI引用麸拄,由位置頭字段給出的資源最具體的URI派昧。
- 響應(yīng)應(yīng)該包括一個(gè)包含資源特征和位置的實(shí)體,用戶(hù)或用戶(hù)代理可以從該列表中選擇最適合的一個(gè)拢切。實(shí)體格式由Content-Type頭字段中指定的媒體類(lèi)型指定蒂萎。
- 原始服務(wù)器必須在返回201狀態(tài)代碼之前創(chuàng)建資源。如果該操作無(wú)法立即執(zhí)行淮椰,服務(wù)器應(yīng)該返回
202(Accepted)
來(lái)響應(yīng)五慈。 - 另外201響應(yīng)可以包含ETag響應(yīng)頭字段,指示剛創(chuàng)建的請(qǐng)求變體的實(shí)體標(biāo)簽的當(dāng)前值实苞。
202:正如它可能被拒絕一樣豺撑,最終該請(qǐng)求可能會(huì)也可能不會(huì)被執(zhí)行。在異步操作的場(chǎng)合下黔牵,沒(méi)有比發(fā)送這個(gè)狀態(tài)碼更方便的做法了聪轿。
203:請(qǐng)求被成功處理,但返回的實(shí)體頭部元信息(meta信息)不是在原始服務(wù)器上有效的確定集合猾浦,而是一個(gè)來(lái)自本地或者第三方的拷貝副本陆错。
- 所呈現(xiàn)的集合可以是原始版本的子集或超集。例如金赦,包括有關(guān)資源的本地注釋信息可能會(huì)導(dǎo)致源服務(wù)器已知的元信息的超集音瓷。
- 不需要使用此響應(yīng)代碼,僅當(dāng)響應(yīng)為200(OK)時(shí)才適用夹抗。
204:服務(wù)器成功處理了請(qǐng)求绳慎,但不需要返回任何實(shí)體內(nèi)容,并且希望返回更新了的元信息漠烧。
- 響應(yīng)可能通過(guò)實(shí)體頭部的形式杏愤,返回新的或更新后的元信息。
- 如果存在這些頭部信息已脓,則應(yīng)當(dāng)與所請(qǐng)求的變量相呼應(yīng)珊楼。
- 在未更新網(wǎng)頁(yè)的情況下,可確保瀏覽器繼續(xù)顯示當(dāng)前文檔度液。
- 204響應(yīng)不能包括消息體厕宗,因此總是在頭字段之后的第一個(gè)空行終止画舌。
205:服務(wù)器成功處理了請(qǐng)求,且沒(méi)有返回任何內(nèi)容已慢。
- 與204響應(yīng)不同曲聂,返回此狀態(tài)碼的響應(yīng)要求用戶(hù)代理應(yīng)該重置導(dǎo)致發(fā)送請(qǐng)求的文檔視圖。
- 該響應(yīng)主要是被用于接受用戶(hù)輸入后蛇受,立即重置表單句葵,以便用戶(hù)能夠輕松地開(kāi)始另一次輸入。
- 答復(fù)不能包括實(shí)體兢仰。
三、重定向類(lèi):代表需要客戶(hù)端采取進(jìn)一步的操作才能完成請(qǐng)求剂碴。
通常把将,這些狀態(tài)碼用來(lái)重定向,后續(xù)的請(qǐng)求地址(重定向目標(biāo))在本次響應(yīng)的Location 域中指明忆矛。當(dāng)且僅當(dāng)?shù)诙€(gè)請(qǐng)求中使用的方法是GET或HEAD時(shí)察蹲,所需的操作可以由用戶(hù)代理執(zhí)行,而不與用戶(hù)交互催训∏⒁椋客戶(hù)端應(yīng)該檢測(cè)無(wú)限重定向循環(huán),因?yàn)檫@樣的循環(huán)為每個(gè)重定向生成網(wǎng)絡(luò)流量漫拭。
狀態(tài)碼 | 名稱(chēng) | 描述 |
---|---|---|
300 | Multiple Choices | (多種選擇)服務(wù)器提供一系列可供選擇的回饋信息亚兄,每個(gè)都有自己特定的地址和瀏覽器驅(qū)動(dòng)的商議信息。 |
301 | Moved Permanently | (永久移動(dòng))請(qǐng)求的資源已永久移動(dòng)到新位置采驻,并且將來(lái)任何對(duì)此資源的引用都應(yīng)該使用本響應(yīng)返回的若干個(gè)URI之一审胚。 |
302 | Found | (臨時(shí)移動(dòng)) 服務(wù)器目前從不同位置的資源響應(yīng)請(qǐng)求,但以后的請(qǐng)求者可以繼續(xù)引用原有位置的資源礼旅。 |
303 | See Other | (查看其他位置)與301類(lèi)似膳叨,當(dāng)前請(qǐng)求的響應(yīng)可以在另一個(gè)URI(位置)上被找到,而且客戶(hù)端應(yīng)當(dāng)采用 GET 的方式訪(fǎng)問(wèn)那個(gè)資源痘系。 |
304 | Not Modified | (未修改) 請(qǐng)求(Get)資源未修改過(guò)菲嘴。服務(wù)器返回此響應(yīng)時(shí),不會(huì)返回網(wǎng)頁(yè)內(nèi)容汰翠。 |
305 | Use Proxy | (使用代理)被請(qǐng)求的資源必須通過(guò)指定的代理才能被訪(fǎng)問(wèn)龄坪。 |
307 | Temporary Redirect | (臨時(shí)重定向) 與302類(lèi)似,服務(wù)器目前從不同位置的網(wǎng)頁(yè)響應(yīng)請(qǐng)求奴璃,但請(qǐng)求者應(yīng)繼續(xù)使用原有位置來(lái)進(jìn)行以后的請(qǐng)求悉默。 |
四、請(qǐng)求錯(cuò)誤類(lèi):代表客戶(hù)端看起來(lái)可能發(fā)生了錯(cuò)誤苟穆,妨礙了服務(wù)器的處理抄课。
如果客戶(hù)端正在發(fā)送數(shù)據(jù)唱星,則在服務(wù)器關(guān)閉輸入連接之前,使用TCP的服務(wù)器實(shí)現(xiàn)應(yīng)該小心跟磨,以確奔淞模客戶(hù)端確認(rèn)收到包含響應(yīng)的數(shù)據(jù)包。如果客戶(hù)端在關(guān)閉后繼續(xù)向服務(wù)器發(fā)送數(shù)據(jù)抵拘,則服務(wù)器的TCP堆棧將向客戶(hù)端發(fā)送一個(gè)重置數(shù)據(jù)包哎榴,這可能會(huì)擦除客戶(hù)端未確認(rèn)的輸入緩沖區(qū),然后才能被HTTP應(yīng)用程序讀取和解釋僵蛛。
狀態(tài)碼 | 名稱(chēng) | 描述 |
---|---|---|
400 | Bad Request | (錯(cuò)誤請(qǐng)求)語(yǔ)法錯(cuò)誤尚蝌、參數(shù)錯(cuò)誤。 |
401 | Unauthorized | (未授權(quán)) 請(qǐng)求用戶(hù)需要身份驗(yàn)證充尉。 |
403 | Forbidden | (禁止) 服務(wù)器拒絕執(zhí)行請(qǐng)求飘言。 |
404 | Not Found | (未找到) 服務(wù)器找不到請(qǐng)求的資源。 |
405 | Method Not Allowed | (方法禁用)請(qǐng)求中指定的方法不能被用于請(qǐng)求相應(yīng)的資源驼侠。 |
406 | Not Acceptable | (不接受)請(qǐng)求的內(nèi)容特性無(wú)法滿(mǎn)足請(qǐng)求的條件姿鸿,無(wú)法得到資源。 |
407 | Proxy Authentication Required | (需要代理授權(quán)) 此狀態(tài)代碼與 401(未授權(quán))類(lèi)似倒源,但指定請(qǐng)求者應(yīng)當(dāng)授權(quán)使用代理苛预。 |
408 | Request Time-out | (請(qǐng)求超時(shí))請(qǐng)求發(fā)生超時(shí)∷癜荆客戶(hù)可以隨時(shí)重復(fù)請(qǐng)求而不進(jìn)行修改热某。 |
409 | Conflict | (沖突)請(qǐng)求和被請(qǐng)求的資源的當(dāng)前狀態(tài)之間存在沖突,請(qǐng)求無(wú)法完成突诬。 |
410 | Gone | (已刪除)請(qǐng)求的資源已永久刪除苫拍。 |
411 | Length Required | (需要有效長(zhǎng)度) 服務(wù)器不接受不含有效內(nèi)容長(zhǎng)度標(biāo)頭字段的請(qǐng)求。 |
412 | Precondition Failed | (未滿(mǎn)足前提條件) 服務(wù)器未滿(mǎn)足請(qǐng)求者在請(qǐng)求中設(shè)置的其中一個(gè)前提條件旺隙。 |
413 | Request Entity Too Large | (請(qǐng)求實(shí)體過(guò)大) 服務(wù)器無(wú)法處理請(qǐng)求绒极,因?yàn)檎?qǐng)求實(shí)體過(guò)大,超出服務(wù)器的處理能力蔬捷。 |
414 | Request-URI Too Large | (請(qǐng)求的 URI 過(guò)長(zhǎng)) 請(qǐng)求的 URI(通常為網(wǎng)址)過(guò)長(zhǎng)垄提,服務(wù)器無(wú)法處理。 |
415 | Unsupported Media Type | (不支持的媒體類(lèi)型) 請(qǐng)求的格式不受請(qǐng)求頁(yè)面的支持周拐。 |
416 | Requested range not satisfiable | (請(qǐng)求范圍不符合要求) 如果頁(yè)面無(wú)法提供請(qǐng)求的范圍铡俐,則服務(wù)器會(huì)返回此狀態(tài)代碼。 |
417 | Expectation Failed | (未滿(mǎn)足期望值) 服務(wù)器未滿(mǎn)足"期望"請(qǐng)求標(biāo)頭字段的要求妥粟。 |
403:如果請(qǐng)求方法不是HEAD审丘,并且服務(wù)器希望公開(kāi)為什么請(qǐng)求尚未實(shí)現(xiàn),則應(yīng)該描述拒絕實(shí)體的原因勾给。
404:服務(wù)器沒(méi)有找到與Request-URI匹配的任何內(nèi)容滩报。
- 沒(méi)有指示條件是暫時(shí)的還是永久的锅知。
- 如果服務(wù)器通過(guò)一些內(nèi)部可配置的機(jī)制知道舊的資源永久不可用,并且沒(méi)有轉(zhuǎn)發(fā)地址脓钾,則應(yīng)該使用410(Gone)狀態(tài)碼售睹。
- 當(dāng)服務(wù)器不希望明確地顯示請(qǐng)求被拒絕的原因,或者沒(méi)有其他響應(yīng)適用時(shí)可训,通常使用此狀態(tài)代碼昌妹。
405:由Request-URI標(biāo)識(shí)的資源不允許在Request-Line中指定的方法。響應(yīng)必須包括一個(gè)包含所請(qǐng)求資源的有效方法列表的Allow標(biāo)頭握截。
406:由請(qǐng)求標(biāo)識(shí)的資源僅能夠根據(jù)請(qǐng)求中發(fā)送的接受頭來(lái)生成內(nèi)容特征不可接受的響應(yīng)實(shí)體飞崖。如果響應(yīng)不可接受,則用戶(hù)代理應(yīng)該暫時(shí)停止接收更多的數(shù)據(jù)川蒙,并詢(xún)問(wèn)用戶(hù)對(duì)進(jìn)一步的操作做出決定蚜厉。
409:只有在預(yù)期用戶(hù)可能能夠解決沖突并重新提交請(qǐng)求的情況下,才允許使用此代碼畜眨。響應(yīng)機(jī)構(gòu)應(yīng)該包括足夠的信息供用戶(hù)識(shí)別沖突的根源。理想情況下术瓮,響應(yīng)實(shí)體將包括足夠的信息供用戶(hù)或用戶(hù)代理解決問(wèn)題; 然而康聂,這可能是不可能的,不是必需的胞四。
410:所請(qǐng)求的資源在服務(wù)器上不再可用恬汁,并且沒(méi)有轉(zhuǎn)發(fā)地址是已知的。這種情況有望被認(rèn)為是永久性的辜伟。
412:該響應(yīng)代碼允許客戶(hù)端在當(dāng)前資源元信息(頭字段數(shù)據(jù))上放置前提條件氓侧,從而防止所請(qǐng)求的方法被應(yīng)用于除預(yù)期的資源之外的資源。
五导狡、服務(wù)器錯(cuò)誤類(lèi):代表服務(wù)器在處理請(qǐng)求時(shí)發(fā)生內(nèi)部錯(cuò)誤或異常约巷。
另外也有可能是服務(wù)器意識(shí)到以當(dāng)前的軟硬件資源無(wú)法完成對(duì)請(qǐng)求的處理。
同請(qǐng)求錯(cuò)誤類(lèi)一樣旱捧,除非這是一個(gè)HEAD 請(qǐng)求独郎,否則服務(wù)器應(yīng)該返回一個(gè)包含錯(cuò)誤情況說(shuō)明的實(shí)體,以及它是一個(gè)臨時(shí)的還是永久的枚赡。用戶(hù)代理(瀏覽器)應(yīng)該向用戶(hù)顯示任何包含的實(shí)體氓癌。這些響應(yīng)代碼適用于任何請(qǐng)求方法。
狀態(tài)碼 | 名稱(chēng) | 描述 |
---|---|---|
500 | Internal Server Error | (服務(wù)器內(nèi)部錯(cuò)誤) 服務(wù)器遇到錯(cuò)誤贫橙,無(wú)法完成請(qǐng)求贪婉。 |
501 | Not Implemented | (尚未實(shí)施) 服務(wù)器不具備完成請(qǐng)求的功能。例如卢肃,服務(wù)器無(wú)法識(shí)別請(qǐng)求方法時(shí)可能會(huì)返回此代碼疲迂。 |
502 | Bad Gateway | (錯(cuò)誤網(wǎng)關(guān)) 服務(wù)器作為網(wǎng)關(guān)或代理嘗試執(zhí)行請(qǐng)求時(shí)才顿,從上游服務(wù)器收到無(wú)效響應(yīng)。 |
503 | Service Unavailable | (服務(wù)不可用) 服務(wù)器目前無(wú)法使用(由于超載或停機(jī)維護(hù))鬼譬。通常娜膘,這只是暫時(shí)狀態(tài)。 |
504 | Gateway Time-out | (網(wǎng)關(guān)超時(shí)) 服務(wù)器作為網(wǎng)關(guān)或代理嘗試執(zhí)行請(qǐng)求時(shí)优质,未能及時(shí)從上游服務(wù)器(URI標(biāo)識(shí)出的服務(wù)器竣贪,例如HTTP、FTP巩螃、LDAP)或者輔助服務(wù)器(例如DNS)收到響應(yīng)演怎。 |
505 | HTTP Version not supported | (HTTP 版本不受支持) 服務(wù)器不支持請(qǐng)求中所用的 HTTP 協(xié)議版本。 |
505:服務(wù)器表示它不能或不愿意使用與客戶(hù)端相同的主要版本來(lái)完成請(qǐng)求避乏,而不是此錯(cuò)誤消息爷耀。響應(yīng)應(yīng)該包含一個(gè)描述為什么不支持該版本以及該服務(wù)器支持哪些其他協(xié)議的實(shí)體。