HTTP服務(wù)器狀態(tài)代碼解析
在做接口測試逆瑞、性能測試的時候,會產(chǎn)生比較多的HTTP錯誤查看其錯誤,有超時的,鏈接不到圖片的,連接不到服務(wù)器等菌仁。所以這塊知識總結(jié)下缸榛。
HTTP服務(wù)器狀態(tài)代碼定義(Status Code Definitions)
1.1 消息1xx(Informational 1xx)
該類狀態(tài)代碼用于表示臨時回應(yīng)俐银。臨時回應(yīng)由狀態(tài)行(Status-Line)及可選標(biāo)題組成懈涛, 由空行終止蔽莱。HTTP/1.0中沒有定義任何1xx的狀態(tài)代碼弟疆,所以它們不是對HTTP/1.0請求的 合法回應(yīng)。實(shí)際上盗冷,它們主要用于實(shí)驗(yàn)用途怠苔,這已經(jīng)超出本文檔的范圍。
1.2 成功2xx(Successful 2xx)
表示客戶端請求被成功接收仪糖、理解柑司、接受。
200 OK
請求成功锅劝≡艹郏回應(yīng)的信息依賴于請求所使用的方法,如下:
GET 要請求的資源已經(jīng)放在回應(yīng)的實(shí)體中了故爵。
HEAD 沒有實(shí)體主體玻粪,回應(yīng)中只包括標(biāo)題信息。
POST 實(shí)體(描述或包含操作的結(jié)果)诬垂。
201 Created
請求完成劲室,結(jié)果是創(chuàng)建了新資源。新創(chuàng)建資源的URI可在回應(yīng)的實(shí)體中得到剥纷。原始服務(wù)器應(yīng)在發(fā)出該狀態(tài)代碼前創(chuàng)建該資源。如果該操作不能立即完成呢铆,服務(wù)器必須在該資源可用時在回應(yīng)主體中給出提示晦鞋,否則,服務(wù)器端應(yīng)回應(yīng)202(可被接受)棺克。
在本文定義的方法悠垛,只有POST可以創(chuàng)建資源。
202 Accepted
請求被接受娜谊,但處理尚未完成确买。請求可能不一定會最終完成,有可能被處理過程隨時中斷纱皆,在這種情況下湾趾,沒有辦法在異步操作中重新發(fā)送狀態(tài)代碼芭商。
202回應(yīng)是沒有義務(wù)的,這樣做的目的是允許服務(wù)器不必等到用戶代理和服務(wù)器間的連接結(jié)束搀缠,就可以響應(yīng)其它過程的請求(象每天運(yùn)行一次的铛楣,基于批處理的過程)。
在某些回應(yīng)中返回的實(shí)體中包括當(dāng)前請求的狀態(tài)指示艺普、狀態(tài)監(jiān)視器指針或用戶對請求能否實(shí)現(xiàn)的評估信息簸州。
204 No Content
服務(wù)器端已經(jīng)實(shí)現(xiàn)了請求,但是沒有返回新的信息歧譬。如果客戶是用戶代理岸浑,則勿需為此更新自身的文檔視圖。該回應(yīng)主要是為了在不影響用戶代理激活文檔視圖的前提下瑰步,進(jìn)行script語句的輸入及其它操作矢洲。該回應(yīng)還可能包括新的、以實(shí)體標(biāo)題形式表示的元信息面氓,它可被當(dāng)前用戶代理激活視圖中的文檔所使用兵钮。
1.3 重定向(Redirection 3xx)
該類狀態(tài)碼表示用戶代理要想完成請求,還需要發(fā)出進(jìn)一步的操作舌界。這些操作只有當(dāng)后跟的請求是GET或HEAD時掘譬,才可由用戶代理來實(shí)現(xiàn),而不用與用戶進(jìn)行交互呻拌。用戶代理永遠(yuǎn)也不要對請求進(jìn)行5次以上的重定向操作葱轩,這樣可能導(dǎo)致無限循環(huán)。
300 Multiple Choices
該狀態(tài)碼不被HTTP/1.0的應(yīng)用程序直接使用藐握,只是做為3xx類型回應(yīng)的缺省解釋靴拱。存在多個可用的被請求資源。
除非是HEAD請求猾普,否則回應(yīng)的實(shí)體中必須包括這些資源的字符列表及位置信息袜炕,由用戶或用戶代理來決定哪個是最適合的。
如果服務(wù)器有首選初家,它應(yīng)將對應(yīng)的URL信息存放在位置域(Location field)處偎窘,用戶代理會根據(jù)此域的值來實(shí)現(xiàn)自動的重定向。
301 Moved Permanently
請求到的資源都會分配一個永久的URL溜在,這樣就可以在將來通過該URL來訪問此資源陌知。有編輯鏈接功能的客戶端會盡可能地根據(jù)服務(wù)器端傳回的新鏈接而自動更新請求URI。 新的URL必須由回應(yīng)中的位置域指定掖肋。除非是HEAD請求仆葡,否則回應(yīng)的實(shí)體主體 (Entity-Body)必須包括對新URL超鏈接的簡要描述志笼。
如果用POST方法發(fā)出請求沿盅,而接收到301回應(yīng)狀態(tài)碼把篓。在這種情況下,除非用戶確認(rèn)嗡呼,否則用戶代理不必自動重定向請求纸俭,因?yàn)檫@將導(dǎo)致改變已發(fā)出請求的環(huán)境。
注意:當(dāng)在接收到301狀態(tài)碼后而自動重定向POST請求時南窗,一些現(xiàn)存的用戶代理會錯誤地將其改為GET請求揍很。
302 Moved Temporarily
請求到的資源在一個不同的URL處臨時保存。因?yàn)橹囟ㄏ蛴袝r會被更改万伤,客戶端應(yīng)繼續(xù)用請求URI來發(fā)出以后的請求窒悔。新的URL必須由回應(yīng)中的位置域指定。除非是HEAD請求敌买,否則回應(yīng)的實(shí)體主體 (Entity-Body)必須包括對新URL超鏈接的簡要描述简珠。
如果用POST方法發(fā)出請求,而接收到302回應(yīng)狀態(tài)碼虹钮。在這種情況下聋庵,除非用戶確認(rèn),否則用戶代理不必自動重定向請求芙粱,因?yàn)檫@將導(dǎo)致改變已發(fā)出請求的環(huán)境祭玉。
注意:當(dāng)在接收到302狀態(tài)碼后而自動重定向POST請求時,一些現(xiàn)存的用戶代理會錯誤地將其改為GET請求春畔。
304 Not Modified
如果客戶端成功執(zhí)行了條件GET請求脱货,而對應(yīng)文件自If-Modified-Since域所指定的日期以來就沒有更新過,服務(wù)器應(yīng)當(dāng)回應(yīng)此狀態(tài)碼律姨,而不是將實(shí)體主體發(fā)送給客戶端振峻。回應(yīng)標(biāo)題域中只應(yīng)包括一些相關(guān)信息择份,比如緩存管理器扣孟、與實(shí)體最近更新(entity's Last-Modified)日期無關(guān)的修改。相關(guān)標(biāo)題域的例子有:日期荣赶、服務(wù)器凤价、過期時間。每當(dāng)304回應(yīng)中給出的域值發(fā)生變化讯壶,緩存都應(yīng)當(dāng)對緩存的實(shí)體進(jìn)行更新料仗。
1.4 客戶端錯誤(Client Error )4xx
4xx類的狀態(tài)碼表示客戶端發(fā)生錯誤湾盗。如果客戶端在收到4xx代碼時請求還沒有完成伏蚊,它應(yīng)當(dāng)立即終止向服務(wù)器發(fā)送數(shù)據(jù)。除了回應(yīng)HEAD請求外格粪,不論錯誤是臨時的還是永久的躏吊,服務(wù)器端都必須在回應(yīng)的實(shí)體中包含錯誤狀態(tài)的解釋氛改。這些狀態(tài)碼適用于任何請求方法。
注意:如果客戶端正在發(fā)送數(shù)據(jù)比伏,服務(wù)器端的TCP實(shí)現(xiàn)應(yīng)當(dāng)小心胜卤,以確保客戶端在關(guān)閉輸入連接之前收到回應(yīng)包赁项。如果客戶端在關(guān)閉后仍舊向服務(wù)器發(fā)送數(shù)據(jù)葛躏,服務(wù)器會給客戶 端發(fā)送一個復(fù)位包,清空客戶端尚未處理的輸入緩沖區(qū)悠菜,以終止HTTP應(yīng)用程序的讀取舰攒、解釋活動。
400 非法請求(Bad Request)
如果請求的語法不對悔醋,服務(wù)器將無法理解摩窃。客戶端在對該請求做出更改之前芬骄,不應(yīng)再次向服務(wù)器重復(fù)發(fā)送該請求猾愿。
401 未授權(quán)(Unauthorized)
請求需要用戶授權(quán)≌俗瑁回應(yīng)中的WWW-Authenticate標(biāo)題域(10.16節(jié))應(yīng)提示用戶以授權(quán)方式請求資源蒂秘。客戶端應(yīng)使用合適的授權(quán)標(biāo)題域(10.2節(jié))來重復(fù)該請求宰僧。如果請求中已經(jīng)包括了授權(quán)信任信息材彪,那回應(yīng)的401表示此授權(quán)被拒絕。如果用戶代理在多次嘗試之后琴儿,回應(yīng)一樣還是返回401狀態(tài)代碼段化,用戶應(yīng)當(dāng)察看一下回應(yīng)的實(shí)體,因?yàn)樵趯?shí)體中會包括一些相關(guān)的動態(tài)信息造成。HTTP訪問授權(quán)會在11節(jié)中解釋显熏。
403 禁止(Forbidden)
服務(wù)器理解請求,但是拒絕實(shí)現(xiàn)該請求晒屎。授權(quán)對此沒有幫助喘蟆,客戶端應(yīng)當(dāng)停止重復(fù)發(fā)送此請求。如果不是用HEAD請求方法鼓鲁,而且服務(wù)器端愿意公布請求未被實(shí)現(xiàn)原因的前提下蕴轨,服務(wù)器會將拒絕原因?qū)懺诨貞?yīng)實(shí)體中。該狀態(tài)碼一般用于服務(wù)器端不想公布請求被拒絕的細(xì)節(jié)或沒有其它的回應(yīng)可用骇吭。
404 沒有找到(Not Found)
服務(wù)器沒有找到與請求URI相符的資源橙弱。404狀態(tài)碼并不指明狀況是臨時性的還是永久性的。如果服務(wù)器不希望為客戶端提供這方面的信息,還回應(yīng)403(禁止)狀態(tài)碼棘脐。
1.5 服務(wù)器錯誤(Server Error )5xx
回應(yīng)代碼以‘5’開頭的狀態(tài)碼表示服務(wù)器端發(fā)現(xiàn)自己出現(xiàn)錯誤斜筐,不能繼續(xù)執(zhí)行請求。如果客戶端在收到5xx狀態(tài)碼時蛀缝,請求尚未完成顷链,它應(yīng)當(dāng)立即停止向服務(wù)器發(fā)送數(shù)據(jù)。除了回應(yīng)HEAD請求外屈梁,服務(wù)器應(yīng)當(dāng)在其回應(yīng)實(shí)體中包括對錯誤情況的解釋嗤练、并指明是臨時性的還永久性的。
這類回應(yīng)代碼沒有標(biāo)題域在讶,可適用于任何請求方法潭苞。
500 服務(wù)器內(nèi)部錯誤(Internal Server Error)
服務(wù)器碰到了意外情況,使其無法繼續(xù)回應(yīng)請求真朗。
501 未實(shí)現(xiàn)(Not Implemented)
服務(wù)器無法提供對請求中所要求功能的支持此疹。如果服務(wù)器無法識別請求方法就會回應(yīng)此狀態(tài)代碼,這意味著不能回應(yīng)請求所要求的任何資源遮婶。
502 非法網(wǎng)關(guān)(Bad Gateway)
充當(dāng)網(wǎng)關(guān)或代理的服務(wù)器從要發(fā)送請求的上游(upstream)服務(wù)器收到非法的回應(yīng)蝗碎。
503 服務(wù)不可用(Service Unavailable)
服務(wù)器當(dāng)前無法處理請求。這一般是由于服務(wù)器臨時性超載或維護(hù)引起的旗扑。該狀態(tài)碼暗示情況是暫時性的蹦骑,要產(chǎn)生一些延遲。
注意:503狀態(tài)碼并沒有暗示服務(wù)器在超載時一定要返回此狀態(tài)碼臀防。一些服務(wù)器可能希望在超載時采用簡單處理眠菇,即斷掉連接。
IIS 錯誤代碼大匯總
400 無法解析此請求袱衷。 401.1 未經(jīng)授權(quán):訪問由于憑據(jù)無效被拒絕捎废。
401.2 未經(jīng)授權(quán): 訪問由于服務(wù)器配置傾向使用替代身份驗(yàn)證方法而被拒絕。
401.3 未經(jīng)授權(quán):訪問由于 ACL 對所請求資源的設(shè)置被拒絕致燥。
401.4 未經(jīng)授權(quán):Web 服務(wù)器上安裝的篩選器授權(quán)失敗登疗。
401.5 未經(jīng)授權(quán):ISAPI/CGI 應(yīng)用程序授權(quán)失敗。
401.7 未經(jīng)授權(quán):由于 Web 服務(wù)器上的 URL 授權(quán)策略而拒絕訪問嫌蚤。
403 禁止訪問:訪問被拒絕辐益。
403.1 禁止訪問:執(zhí)行訪問被拒絕。
403.2 禁止訪問:讀取訪問被拒絕脱吱。
403.3 禁止訪問:寫入訪問被拒絕智政。
403.4 禁止訪問:需要使用 SSL 查看該資源。
403.5 禁止訪問:需要使用 SSL 128 查看該資源箱蝠。
403.6 禁止訪問:客戶端的 IP 地址被拒絕续捂。
403.7 禁止訪問:需要 SSL 客戶端證書猜年。
403.8 禁止訪問:客戶端的 DNS 名稱被拒絕。
403.9 禁止訪問:太多客戶端試圖連接到 Web 服務(wù)器疾忍。
403.10 禁止訪問:Web 服務(wù)器配置為拒絕執(zhí)行訪問。
403.11 禁止訪問:密碼已更改床三。
403.12 禁止訪問:服務(wù)器證書映射器拒絕了客戶端證書訪問一罩。
403.13 禁止訪問:客戶端證書已在 Web 服務(wù)器上吊銷。
403.14 禁止訪問:在 Web 服務(wù)器上已拒絕目錄列表撇簿。
403.15 禁止訪問:Web 服務(wù)器已超過客戶端訪問許可證限制聂渊。
403.16 禁止訪問:客戶端證書格式錯誤或未被 Web 服務(wù)器信任。
403.17 禁止訪問:客戶端證書已經(jīng)到期或者尚未生效四瘫。
403.18 禁止訪問:無法在當(dāng)前應(yīng)用程序池中執(zhí)行請求的 URL汉嗽。
403.19 禁止訪問:無法在該應(yīng)用程序池中為客戶端執(zhí)行 CGI。
403.20 禁止訪問:Passport 登錄失敗找蜜。
404 找不到文件或目錄饼暑。
404.1 文件或目錄未找到:網(wǎng)站無法在所請求的端口訪問。
注意 404.1 錯誤只會出現(xiàn)在具有多個 IP 地址的計(jì)算機(jī)上洗做。如果在特定 IP 地址/端口組合上收到客戶端請求弓叛,而且沒有將 IP 地址配置為在該特定的端口上偵聽,則 IIS 返回 404.1 HTTP 錯誤诚纸。例如撰筷,如果一臺計(jì)算機(jī)有兩個 IP 地址,而只將其中一個 IP 地址配置為在端口 80 上偵聽畦徘,則另一個 IP 地址從端口 80 收到的任何請求都將導(dǎo)致 IIS 返回 404.1 錯誤毕籽。只應(yīng)在此服務(wù)級別設(shè)置該錯誤,因?yàn)橹挥挟?dāng)服務(wù)器上使用多個 IP 地址時才會將它返回給客戶端井辆。
404.2 文件或目錄無法找到:鎖定策略禁止該請求关筒。
404.3 文件或目錄無法找到:MIME 映射策略禁止該請求。
405 用于訪問該頁的 HTTP 動作未被許可杯缺。
406 客戶端瀏覽器不接受所請求頁面的 MIME 類型平委。
407 Web 服務(wù)器需要初始的代理驗(yàn)證。
410 文件已刪除夺谁。
412 客戶端設(shè)置的前提條件在 Web 服務(wù)器上評估時失敗廉赔。
414 請求 URL 太大,因此在 Web 服務(wù)器上不接受該 URL匾鸥。
500 服務(wù)器內(nèi)部錯誤蜡塌。
500.11 服務(wù)器錯誤:Web 服務(wù)器上的應(yīng)用程序正在關(guān)閉。
500.12 服務(wù)器錯誤:Web 服務(wù)器上的應(yīng)用程序正在重新啟動勿负。
500.13 服務(wù)器錯誤:Web 服務(wù)器太忙馏艾。
500.14 服務(wù)器錯誤:服務(wù)器上的無效應(yīng)用程序配置劳曹。
500.15 服務(wù)器錯誤:不允許直接請求 GLOBAL.ASA。
500.16 服務(wù)器錯誤:UNC 授權(quán)憑據(jù)不正確琅摩。
500.17 服務(wù)器錯誤:URL 授權(quán)存儲無法找到铁孵。
500.18 服務(wù)器錯誤:URL 授權(quán)存儲無法打開。
500.19 服務(wù)器錯誤:該文件的數(shù)據(jù)在配置數(shù)據(jù)庫中配置不正確房资。
500.20 服務(wù)器錯誤:URL 授權(quán)域無法找到蜕劝。
500 100 內(nèi)部服務(wù)器錯誤:ASP 錯誤。
501 標(biāo)題值指定的配置沒有執(zhí)行轰异。
502 Web 服務(wù)器作為網(wǎng)關(guān)或代理服務(wù)器時收到無效的響應(yīng)岖沛。
既然這么認(rèn)真的看完了,不想轉(zhuǎn)發(fā)或贊賞的話搭独,能否順手點(diǎn)個贊或留言呢婴削。
混跡在互聯(lián)網(wǎng)圈的軟件測試開發(fā)一枚,
專注軟件測試自動化方向牙肝,爬蟲國內(nèi)外測試資源唉俗,分享給自學(xué)愛好者。
知乎專欄:軟件自動化測試共享站 配椭。
QQ群:549900698 互躬。
公眾號:testpu 。
微博:@ 西邊人