當(dāng)瀏覽者訪問一個(gè)網(wǎng)頁時(shí),瀏覽者的瀏覽器會(huì)向網(wǎng)頁所在服務(wù)器發(fā)出請(qǐng)求。當(dāng)瀏覽器接收并顯示網(wǎng)頁前,此網(wǎng)頁所在的服務(wù)器會(huì)返回一個(gè)包含HTTP狀態(tài)碼的信息頭用以響應(yīng)瀏覽器的請(qǐng)求。本文主要是:關(guān)于http狀態(tài)碼是什么,有什么用,在哪里查看狀態(tài)碼分別代表什么意思的分享,這里面內(nèi)容也是非常多的,所以在此科普一下,做波分享。這里面有關(guān)鍵詞版本和詳細(xì)介紹每個(gè)錯(cuò)誤的版本。
http狀態(tài)碼的核心作用是Web Server服務(wù)器用來告訴客戶端,當(dāng)前的網(wǎng)頁請(qǐng)求發(fā)生了什么事,或者說當(dāng)前Web服務(wù)器的響應(yīng)狀態(tài)。所以HTTP狀態(tài)碼常用來判斷和分析當(dāng)前Web服務(wù)器的運(yùn)行狀況。
我們作為程序猿,需要對(duì)這些狀態(tài)碼,盡可能了解的更多一些,將這些狀態(tài)碼一一弄清楚,工作中遇到的時(shí)候,能夠明白問題出在哪里,針對(duì)性的解決問題。
200 OK 服務(wù)器成功處理了請(qǐng)求(這個(gè)是我們見到最多的)
301/302 Moved Permanently(重定向)請(qǐng)求的URL已移走。Response中應(yīng)該包含一個(gè)Location URL, 說明資源現(xiàn)在所處的位置
404 Not Found(頁面丟失)未找到資源
501 Internal Server Error服務(wù)器遇到一個(gè)錯(cuò)誤,使其無法對(duì)請(qǐng)求提供服務(wù)
1開頭:(被接受,需要繼續(xù)處理。)
這一類型的狀態(tài)碼,代表請(qǐng)求已被接受,需要繼續(xù)處理。這類響應(yīng)是臨時(shí)響應(yīng),只包含狀態(tài)行和某些可選的響應(yīng)頭信息,并以空行結(jié)束。
2開頭 (請(qǐng)求成功)
這一類型的狀態(tài)碼,代表請(qǐng)求已成功被服務(wù)器接收、理解、并接受
3開頭 (請(qǐng)求被重定向)
這類狀態(tài)碼代表需要客戶端采取進(jìn)一步的操作才能完成請(qǐng)求。通常,這些狀態(tài)碼用來重定向,后續(xù)的請(qǐng)求地址(重定向目標(biāo))在本次響應(yīng)的 Location 域中指明。
4開頭:(請(qǐng)求錯(cuò)誤)
這類的狀態(tài)碼代表了客戶端看起來可能發(fā)生了錯(cuò)誤,妨礙了服務(wù)器的處理。除非響應(yīng)的是一個(gè) HEAD 請(qǐng)求,否則服務(wù)器就應(yīng)該返回一個(gè)解釋當(dāng)前錯(cuò)誤狀況的實(shí)體,以及這是臨時(shí)的還是永久性的狀況。這些狀態(tài)碼適用于任何請(qǐng)求方法。瀏覽器應(yīng)當(dāng)向用戶顯示任何包含在此類錯(cuò)誤響應(yīng)中的實(shí)體內(nèi)容。
5開頭:(服務(wù)器錯(cuò)誤)
這類狀態(tài)碼代表了服務(wù)器在處理請(qǐng)求的過程中有錯(cuò)誤或者異常狀態(tài)發(fā)生,也有可能是服務(wù)器意識(shí)到以當(dāng)前的軟硬件資源無法完成對(duì)請(qǐng)求的處理。除非這是一個(gè)HEAD 請(qǐng)求,否則服務(wù)器應(yīng)當(dāng)包含一個(gè)解釋當(dāng)前錯(cuò)誤狀態(tài)以及這個(gè)狀況是臨時(shí)的還是永久的解釋信息實(shí)體。瀏覽器應(yīng)當(dāng)向用戶展示任何在當(dāng)前響應(yīng)中被包含的實(shí)體。
比如:站長(zhǎng)工具,http狀態(tài)查詢:http://tool.chinaz.com/pagestatus/
像這樣的網(wǎng)站,也提供這個(gè)功能。。。。http://www.3464.com/Tools/PageStatus/
其他的應(yīng)該還有很多,可以自己去搜索一下。
在進(jìn)行一個(gè)http請(qǐng)求的時(shí)候,我們看到的只是最后服務(wù)器返回來的狀態(tài)碼,比如出錯(cuò)了404之類,或者成功了200.這說明整個(gè)http狀態(tài)請(qǐng)求的過程中,狀態(tài)碼都只是最后返回的那個(gè)狀態(tài)碼嗎?
實(shí)際上在請(qǐng)求的過程中,http狀態(tài)碼的變化的非??欤駝偛耪f的1開頭的狀態(tài)碼(被接受,需要繼續(xù)處理。),這類狀態(tài)碼只是一個(gè)臨時(shí)響應(yīng)的狀態(tài)碼,http請(qǐng)求還是要繼續(xù)進(jìn)行下去的,這種狀態(tài)碼是用來反映現(xiàn)在請(qǐng)求進(jìn)行到哪一步了。除非是類似那種像打斷點(diǎn)的東西,一步操作停一下,才會(huì)清晰的看出http狀態(tài)碼是如何進(jìn)行變化的。
這里是對(duì)每個(gè)http狀態(tài)的主要作用進(jìn)行概括,關(guān)于詳細(xì)的http狀態(tài)有興趣了解的朋友們,可以點(diǎn)這里:HTTP狀態(tài)碼,這里是百度百科的對(duì)http狀態(tài)碼的詳細(xì)解析,是我看到的最全的了。
這一類型的狀態(tài)碼,代表請(qǐng)求已被接受,需要繼續(xù)處理。這類響應(yīng)是臨時(shí)響應(yīng),只包含狀態(tài)行和某些可選的響應(yīng)頭信息,并以空行結(jié)束。由于 HTTP/1.0 協(xié)議中沒有定義任何 1xx 狀態(tài)碼,所以除非在某些試驗(yàn)條件下,服務(wù)器禁止向此類客戶端發(fā)送 1xx 響應(yīng)。
100(客戶端繼續(xù)發(fā)送請(qǐng)求,這是臨時(shí)響應(yīng)):這個(gè)臨時(shí)響應(yīng)是用來通知客戶端它的部分請(qǐng)求已經(jīng)被服務(wù)器接收,且仍未被拒絕??蛻舳藨?yīng)當(dāng)繼續(xù)發(fā)送請(qǐng)求的剩余部分,或者如果請(qǐng)求已經(jīng)完成,忽略這個(gè)響應(yīng)。服務(wù)器必須在請(qǐng)求完成后向客戶端發(fā)送一個(gè)最終響應(yīng)。
101服務(wù)器根據(jù)客戶端的請(qǐng)求切換協(xié)議。只能切換到更高級(jí)的協(xié)議,例如,切換到HTTP的新版本協(xié)議。
102 (代表處理將被繼續(xù)執(zhí)行) 由WebDAV(RFC 2518)擴(kuò)展的狀態(tài)碼,代表處理將被繼續(xù)執(zhí)行。
200 (成功) 服務(wù)器已成功處理了請(qǐng)求。 通常,這表示服務(wù)器提供了請(qǐng)求的網(wǎng)頁。
201 (已創(chuàng)建) 請(qǐng)求成功并且服務(wù)器創(chuàng)建了新的資源。
202 (已接受) 服務(wù)器已接受請(qǐng)求,但尚未處理。
203 (非授權(quán)信息) 服務(wù)器已成功處理了請(qǐng)求,但返回的信息可能來自另一來源。
204 (無內(nèi)容) 服務(wù)器成功處理了請(qǐng)求,但沒有返回任何內(nèi)容。
205 (重置內(nèi)容) 服務(wù)器成功處理了請(qǐng)求,但沒有返回任何內(nèi)容。
206 (部分內(nèi)容) 服務(wù)器成功處理了部分 GET 請(qǐng)求。
207 (代表之后的消息體將是一個(gè)XML消息),并且可能依照之前子請(qǐng)求數(shù)量的不同,包含一系列獨(dú)立的響應(yīng)代碼。
300 (多種選擇) 針對(duì)請(qǐng)求,服務(wù)器可執(zhí)行多種操作。 服務(wù)器可根據(jù)請(qǐng)求者 (user agent) 選擇一項(xiàng)操作,或提供操作列表供請(qǐng)求者選擇。
301 (永久移動(dòng)) 請(qǐng)求的網(wǎng)頁已永久移動(dòng)到新位置。 服務(wù)器返回此響應(yīng)(對(duì) GET 或 HEAD 請(qǐng)求的響應(yīng))時(shí),會(huì)自動(dòng)將請(qǐng)求者轉(zhuǎn)到新位置。
302 (臨時(shí)移動(dòng)) 服務(wù)器目前從不同位置的網(wǎng)頁響應(yīng)請(qǐng)求,但請(qǐng)求者應(yīng)繼續(xù)使用原有位置來進(jìn)行以后的請(qǐng)求。
303 (查看其他位置) 請(qǐng)求者應(yīng)當(dāng)對(duì)不同的位置使用單獨(dú)的 GET 請(qǐng)求來檢索響應(yīng)時(shí),服務(wù)器返回此代碼。
304 (未修改)自從上次請(qǐng)求后,請(qǐng)求的網(wǎng)頁未修改過。 服務(wù)器返回此響應(yīng)時(shí),不會(huì)返回網(wǎng)頁內(nèi)容。
305 (使用代理) 請(qǐng)求者只能使用代理訪問請(qǐng)求的網(wǎng)頁。 如果服務(wù)器返回此響應(yīng),還表示請(qǐng)求者應(yīng)使用代理。
307 (臨時(shí)重定向) 服務(wù)器目前從不同位置的網(wǎng)頁響應(yīng)請(qǐng)求,但請(qǐng)求者應(yīng)繼續(xù)使用原有位置來進(jìn)行以后的請(qǐng)求。
400 (錯(cuò)誤請(qǐng)求) 服務(wù)器不理解請(qǐng)求的語法。
401 (未授權(quán)) 請(qǐng)求要求身份驗(yàn)證。 對(duì)于需要登錄的網(wǎng)頁,服務(wù)器可能返回此響應(yīng)。
403 (禁止) 服務(wù)器拒絕請(qǐng)求。
404 (未找到) 服務(wù)器找不到請(qǐng)求的網(wǎng)頁。
405 (方法禁用) 禁用請(qǐng)求中指定的方法。
406 (不接受) 無法使用請(qǐng)求的內(nèi)容特性響應(yīng)請(qǐng)求的網(wǎng)頁。
407 (需要代理授權(quán)) 此狀態(tài)代碼與 401(未授權(quán))類似,但指定請(qǐng)求者應(yīng)當(dāng)授權(quán)使用代理。
408 (請(qǐng)求超時(shí)) 服務(wù)器等候請(qǐng)求時(shí)發(fā)生超時(shí)。
409 (沖突) 服務(wù)器在完成請(qǐng)求時(shí)發(fā)生沖突。 服務(wù)器必須在響應(yīng)中包含有關(guān)沖突的信息。
410 (已刪除) 如果請(qǐng)求的資源已永久刪除,服務(wù)器就會(huì)返回此響應(yīng)。
411 (需要有效長(zhǎng)度) 服務(wù)器不接受不含有效內(nèi)容長(zhǎng)度標(biāo)頭字段的請(qǐng)求。
412 (未滿足前提條件) 服務(wù)器未滿足請(qǐng)求者在請(qǐng)求中設(shè)置的其中一個(gè)前提條件。
413 (請(qǐng)求實(shí)體過大) 服務(wù)器無法處理請(qǐng)求,因?yàn)檎?qǐng)求實(shí)體過大,超出服務(wù)器的處理能力。
414 (請(qǐng)求的 URI 過長(zhǎng)) 請(qǐng)求的 URI(通常為網(wǎng)址)過長(zhǎng),服務(wù)器無法處理。
415 (不支持的媒體類型) 請(qǐng)求的格式不受請(qǐng)求頁面的支持。
416 (請(qǐng)求范圍不符合要求) 如果頁面無法提供請(qǐng)求的范圍,則服務(wù)器會(huì)返回此狀態(tài)代碼。
417 (未滿足期望值) 服務(wù)器未滿足"期望"請(qǐng)求標(biāo)頭字段的要求。
這些錯(cuò)誤可能是服務(wù)器本身的錯(cuò)誤,而不是請(qǐng)求出錯(cuò)。
500 (服務(wù)器內(nèi)部錯(cuò)誤) 服務(wù)器遇到錯(cuò)誤,無法完成請(qǐng)求。
501 (尚未實(shí)施) 服務(wù)器不具備完成請(qǐng)求的功能。 例如,服務(wù)器無法識(shí)別請(qǐng)求方法時(shí)可能會(huì)返回此代碼。
502 (錯(cuò)誤網(wǎng)關(guān)) 服務(wù)器作為網(wǎng)關(guān)或代理,從上游服務(wù)器收到無效響應(yīng)。
503 (服務(wù)不可用) 服務(wù)器目前無法使用(由于超載或停機(jī)維護(hù))。 通常,這只是暫時(shí)狀態(tài)。
504 (網(wǎng)關(guān)超時(shí)) 服務(wù)器作為網(wǎng)關(guān)或代理,但是沒有及時(shí)從上游服務(wù)器收到請(qǐng)求。
505 (HTTP 版本不受支持) 服務(wù)器不支持請(qǐng)求中所用的 HTTP 協(xié)議版本。
聯(lián)系客服