咨詢電(diàn)話(huà):023-88959644    24小(xiǎo)時(shí)服務熱線:400-023-8809
NEWS CENTER ·
新聞動态
關注中技(jì)互聯 關注前沿

HTTP服務器(qì)狀态代碼分析

發表日期:2014-12-01    文章編輯:    浏覽次數(shù):25    标簽:

1.1消息1xx(Informational1xx)
該類狀态代碼用于表示臨時(shí)回應。臨時(shí)回應由狀态行(xíng)(Status-Line)及可(kě)選标題組成,由空(kōng)行(xíng)終止。HTTP/1.0中沒有(yǒu)定義任何1xx的狀态代碼,所以它們不是對HTTP/1.0請(qǐng)求的合法回應。實際上(shàng),它們主要用于實驗用途,這已經超出本文檔的範圍。
1.2成功2xx(Successful2xx)
表示客戶端請(qǐng)求被成功接收、理(lǐ)解、接受。
200OK
請(qǐng)求成功。回應的信息依賴于請(qǐng)求所使用的方法,如下:
GET要請(qǐng)求的資源已經放在回應的實體(tǐ)中了。
HEAD沒有(yǒu)實體(tǐ)主體(tǐ),回應中隻包括标題信息。?
POST實體(tǐ)(描述或包含操作(zuò)的結果)。
201Created
請(qǐng)求完成,結果是創建了新資源。新創建資源的URI可(kě)在回應的實體(tǐ)中得(de)到。原始服務器(qì)應在發出該狀态代碼前創建該資源。如果該操作(zuò)不能立即完成,服務器(qì)必須在該資源可(kě)用時(shí)在回應主體(tǐ)中給出提示,否則,服務器(qì)端應回應202(可(kě)被接受)。
在本文定義的方法,隻有(yǒu)POST可(kě)以創建資源。
202Accepted
請(qǐng)求被接受,但(dàn)處理(lǐ)尚未完成。請(qǐng)求可(kě)能不一定會(huì)最終完成,有(yǒu)可(kě)能被處理(lǐ)過程随時(shí)中斷,在這種情況下,沒有(yǒu)辦法在異步操作(zuò)中重新發送狀态代碼。
202回應是沒有(yǒu)義務的,這樣做(zuò)的目的是允許服務器(qì)不必等到用戶代理(lǐ)和(hé)服務器(qì)間(jiān)的連接結束,就可(kě)以響應其它過程的請(qǐng)求(象每天運行(xíng)一次的,基于批處理(lǐ)的過程)。
在某些(xiē)回應中返回的實體(tǐ)中包括當前請(qǐng)求的狀态指示、狀态監視(shì)器(qì)指針或用戶對請(qǐng)求能否實現的評估信息。
204NoContent
服務器(qì)端已經實現了請(qǐng)求,但(dàn)是沒有(yǒu)返回新的信息。如果客戶是用戶代理(lǐ),則勿需為(wèi)此更新自身的文檔視(shì)圖。該回應主要是為(wèi)了在不影(yǐng)響用戶代理(lǐ)激活文檔視(shì)圖的前提下,進行(xíng)script語句的輸入及其它操作(zuò)。該回應還(hái)可(kě)能包括新的、以實體(tǐ)标題形式表示的元信息,它可(kě)被當前用戶代理(lǐ)激活視(shì)圖中的文檔所使用。
1.3重定向(Redirection3xx)
該類狀态碼表示用戶代理(lǐ)要想完成請(qǐng)求,還(hái)需要發出進一步的操作(zuò)。這些(xiē)操作(zuò)隻有(yǒu)當後跟的請(qǐng)求是GET或HEAD時(shí),才可(kě)由用戶代理(lǐ)來(lái)實現,而不用與用戶進行(xíng)交互。用戶代理(lǐ)永遠也不要對請(qǐng)求進行(xíng)5次以上(shàng)的重定向操作(zuò),這樣可(kě)能導緻無限循環。
300MultipleChoices
該狀态碼不被HTTP/1.0的應用程序直接使用,隻是做(zuò)為(wèi)3xx類型回應的缺省解釋。存在多(duō)個(gè)可(kě)用的被請(qǐng)求資源。
除非是HEAD請(qǐng)求,否則回應的實體(tǐ)中必須包括這些(xiē)資源的字符列表及位置信息,由用戶或用戶代理(lǐ)來(lái)決定哪個(gè)是最适合的。
如果服務器(qì)有(yǒu)首選,它應将對應的URL信息存放在位置域(Locationfield)處,用戶代理(lǐ)會(huì)根據此域的值來(lái)實現自動的重定向。
301MovedPermanently
請(qǐng)求到的資源都會(huì)分配一個(gè)永久的URL,這樣就可(kě)以在将來(lái)通(tōng)過該URL來(lái)訪問此資源。有(yǒu)編輯鏈接功能的客戶端會(huì)盡可(kě)能地根據服務器(qì)端傳回的新鏈接而自動更新請(qǐng)求URI。新的URL必須由回應中的位置域指定。除非是HEAD請(qǐng)求,否則回應的實體(tǐ)主體(tǐ)(Entity-Body)必須包括對新URL超鏈接的簡要描述。
如果用POST方法發出請(qǐng)求,而接收到301回應狀态碼。在這種情況下,除非用戶确認,否則用戶代理(lǐ)不必自動重定向請(qǐng)求,因為(wèi)這将導緻改變已發出請(qǐng)求的環境。
注意:當在接收到301狀态碼後而自動重定向POST請(qǐng)求時(shí),一些(xiē)現存的用戶代理(lǐ)會(huì)錯誤地将其改為(wèi)GET請(qǐng)求。
302MovedTemporarily
請(qǐng)求到的資源在一個(gè)不同的URL處臨時(shí)保存。因為(wèi)重定向有(yǒu)時(shí)會(huì)被更改,客戶端應繼續用請(qǐng)求URI來(lái)發出以後的請(qǐng)求。新的URL必須由回應中的位置域指定。除非是HEAD請(qǐng)求,否則回應的實體(tǐ)主體(tǐ)(Entity-Body)必須包括對新URL超鏈接的簡要描述。
如果用POST方法發出請(qǐng)求,而接收到302回應狀态碼。在這種情況下,除非用戶确認,否則用戶代理(lǐ)不必自動重定向請(qǐng)求,因為(wèi)這将導緻改變已發出請(qǐng)求的環境。
注意:當在接收到302狀态碼後而自動重定向POST請(qǐng)求時(shí),一些(xiē)現存的用戶代理(lǐ)會(huì)錯誤地将其改為(wèi)GET請(qǐng)求。
304NotModified
如果客戶端成功執行(xíng)了條件GET請(qǐng)求,而對應文件自If-Modified-Since域所指定的日期以來(lái)就沒有(yǒu)更新過,服務器(qì)應當回應此狀态碼,而不是将實體(tǐ)主體(tǐ)發送給客戶端。回應标題域中隻應包括一些(xiē)相關信息,比如緩存管理(lǐ)器(qì)、與實體(tǐ)最近更新(entity'sLast-Modified)日期無關的修改。相關标題域的例子有(yǒu):日期、服務器(qì)、過期時(shí)間(jiān)。每當304回應中給出的域值發生(shēng)變化,緩存都應當對緩存的實體(tǐ)進行(xíng)更新。
1.4客戶端錯誤(ClientError)4xx
4xx類的狀态碼表示客戶端發生(shēng)錯誤。如果客戶端在收到4xx代碼時(shí)請(qǐng)求還(hái)沒有(yǒu)完成,它應當立即終止向服務器(qì)發送數(shù)據。除了回應HEAD請(qǐng)求外,不論錯誤是臨時(shí)的還(hái)是永久的,服務器(qì)端都必須在回應的實體(tǐ)中包含錯誤狀态的解釋。這些(xiē)狀态碼适用于任何請(qǐng)求方法。
注意:如果客戶端正在發送數(shù)據,服務器(qì)端的TCP實現應當小(xiǎo)心,以确保客戶端在關閉輸入連接之前收到回應包。如果客戶端在關閉後仍舊(jiù)向服務器(qì)發送數(shù)據,服務器(qì)會(huì)給客戶端發送一個(gè)複位包,清空(kōng)客戶端尚未處理(lǐ)的輸入緩沖區(qū),以終止HTTP應用程序的讀取、解釋活動。
400非法請(qǐng)求(BadRequest)
如果請(qǐng)求的語法不對,服務器(qì)将無法理(lǐ)解。客戶端在對該請(qǐng)求做(zuò)出更改之前,不應再次向服務器(qì)重複發送該請(qǐng)求。
401未授權(Unauthorized)
請(qǐng)求需要用戶授權。回應中的WWW-Authenticate标題域(10.16節)應提示用戶以授權方式請(qǐng)求資源。客戶端應使用合适的授權标題域(10.2節)來(lái)重複該請(qǐng)求。如果請(qǐng)求中已經包括了授權信任信息,那(nà)回應的401表示此授權被拒絕。如果用戶代理(lǐ)在多(duō)次嘗試之後,回應一樣還(hái)是返回401狀态代碼,用戶應當察看一下回應的實體(tǐ),因為(wèi)在實體(tǐ)中會(huì)包括一些(xiē)相關的動态信息。HTTP訪問授權會(huì)在11節中解釋。
403禁止(Forbidden)
服務器(qì)理(lǐ)解請(qǐng)求,但(dàn)是拒絕實現該請(qǐng)求。授權對此沒有(yǒu)幫助,客戶端應當停止重複發送此請(qǐng)求。如果不是用HEAD請(qǐng)求方法,而且服務器(qì)端願意公布請(qǐng)求未被實現原因的前提下,服務器(qì)會(huì)将拒絕原因寫在回應實體(tǐ)中。該狀态碼一般用于服務器(qì)端不想公布請(qǐng)求被拒絕的細節或沒有(yǒu)其它的回應可(kě)用。
404沒有(yǒu)找到(NotFound)
服務器(qì)沒有(yǒu)找到與請(qǐng)求URI相符的資源。404狀态碼并不指明(míng)狀況是臨時(shí)性的還(hái)是永久性的。如果服務器(qì)不希望為(wèi)客戶端提供這方面的信息,還(hái)回應403(禁止)狀态碼。
1.5服務器(qì)錯誤(ServerError)5xx
回應代碼以‘5’開(kāi)頭的狀态碼表示服務器(qì)端發現自己出現錯誤,不能繼續執行(xíng)請(qǐng)求。如果客戶端在收到5xx狀态碼時(shí),請(qǐng)求尚未完成,它應當立即停止向服務器(qì)發送數(shù)據。除了回應HEAD請(qǐng)求外,服務器(qì)應當在其回應實體(tǐ)中包括對錯誤情況的解釋、并指明(míng)是臨時(shí)性的還(hái)永久性的。
這類回應代碼沒有(yǒu)标題域,可(kě)适用于任何請(qǐng)求方法。
500服務器(qì)內(nèi)部錯誤(InternalServerError)
服務器(qì)碰到了意外情況,使其無法繼續回應請(qǐng)求。
501未實現(NotImplemented)
服務器(qì)無法提供對請(qǐng)求中所要求功能的支持。如果服務器(qì)無法識别請(qǐng)求方法就會(huì)回應此狀态代碼,這意味着不能回應請(qǐng)求所要求的任何資源。
502非法網關(BadGateway)
充當網關或代理(lǐ)的服務器(qì)從要發送請(qǐng)求的上(shàng)遊(upstream)服務器(qì)收到非法的回應。
503服務不可(kě)用(ServiceUnavailable)
服務器(qì)當前無法處理(lǐ)請(qǐng)求。這一般是由于服務器(qì)臨時(shí)性超載或維護引起的。該狀态碼暗示情況是暫時(shí)性的,要産生(shēng)一些(xiē)延遲。
注意:503狀态碼并沒有(yǒu)暗示服務器(qì)在超載時(shí)一定要返回此狀态碼。一些(xiē)服務器(qì)可(kě)能希望在超載時(shí)采用簡單處理(lǐ),即斷掉連接。

如沒特殊注明(míng),文章均為(wèi)中技(jì)互聯原創,轉載請(qǐng)注明(míng)來(lái)自www.zjcoo.com
相關新聞

CopyrightZJCOO technology Co., LTD. All Rights Reserved.    

渝ICP 備11003429号

  • qq客服
  • 公衆号
  • 手機版
  • 新浪微博