日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
http狀態(tài)碼竟然可以這樣記

標(biāo)題皮了一下,但是內(nèi)容應(yīng)該算是比較用心的,不是直接抄了一下官方文檔和一堆抽象的術(shù)語(yǔ),盡量配合實(shí)例解釋的通俗一些。

我們提供的服務(wù)有:網(wǎng)站建設(shè)、網(wǎng)站制作、微信公眾號(hào)開(kāi)發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、三水ssl等。為上千余家企事業(yè)單位解決了網(wǎng)站和推廣的問(wèn)題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的三水網(wǎng)站制作公司

基本介紹

狀態(tài)碼(Status Code)和原因短語(yǔ)(Reason Phrase)用于簡(jiǎn)單描述請(qǐng)求的結(jié)果。常見(jiàn)的比如:

  • 200 OK,表示請(qǐng)求成功;
  • 404 Not Found表示請(qǐng)求的資源未找到。

原因短語(yǔ)(上面的ok 和Not Found)是對(duì)狀態(tài)碼的解釋說(shuō)明。

形如200這樣的狀態(tài)碼,這里的3位數(shù)字中第1位數(shù)字,通常表示響應(yīng)的類別(會(huì)有一兩個(gè)例外),大致可以分成以下幾類(完整的狀態(tài)碼表,參見(jiàn)http1.1-RFC6):

狀態(tài)碼 含義
1xx 請(qǐng)求正被處理
2xx 請(qǐng)求成功處理
3xx 請(qǐng)求需要附加操作,常見(jiàn)的例子如重定向
4xx 客戶端出錯(cuò)導(dǎo)致請(qǐng)求無(wú)法被處理
5xx 服務(wù)端處理出錯(cuò)

(4,5常被用在排查bug時(shí)前后端互相甩鍋-_-!)下面詳細(xì)介紹常用的狀態(tài)碼和原因短語(yǔ)

分類

2xx

200 OK

表示請(qǐng)求已經(jīng)被正常處理,這個(gè)比較常見(jiàn),就不多說(shuō)了。

204 NO Content

表示請(qǐng)求成功,但是響應(yīng)的報(bào)文中不含實(shí)體主體。通常用于只需要客戶端向服務(wù)端發(fā)送信息,而不需要接受新信息的情況使用

(這么官方且抽象的描述顯然不是我的風(fēng)格),舉例:

現(xiàn)在很常見(jiàn)的一種請(qǐng)求類型option,通常被用來(lái)做正式請(qǐng)求的預(yù)請(qǐng)求,這個(gè)請(qǐng)求只需要確認(rèn)后續(xù)的請(qǐng)求能不能通過(guò),即只需要一個(gè)結(jié)果,而不需要返回其他內(nèi)容,這類請(qǐng)求成功時(shí)就會(huì)返回204。

相信大家小時(shí)候都經(jīng)??荚?,如果拿試題來(lái)打個(gè)比方,那么:

其他狀態(tài)碼可以比喻為填空題:客戶端提問(wèn)(發(fā)請(qǐng)求),服務(wù)端給出詳細(xì)答案(返回實(shí)體內(nèi)容)。

204可以理解為判斷題:客戶端提問(wèn)(發(fā)請(qǐng)求),服務(wù)端給出判斷,對(duì)或者錯(cuò)(只要響應(yīng)頭有狀態(tài)碼,不需要實(shí)體內(nèi)容)

206 Partial Content

字面意思:只返回了請(qǐng)求資源的部分。這種情況必須提到提到一個(gè)請(qǐng)求頭Range——在http的請(qǐng)求中,這個(gè)頭部用來(lái)表示范圍請(qǐng)求,例如:

 
 
 
  1. 'Range':byte=5001-10000 // 表示本次要請(qǐng)求資源的5001-10000字節(jié)的部分 

這種情況下,如果服務(wù)器接受范圍請(qǐng)求并且成功處理,就會(huì)返回206,并且在響應(yīng)的頭部返回

 
 
 
  1. 'Content-Range':bytes 5001-10000/10000 // 表示整個(gè)資源有10000字節(jié),本次返回的范圍為 5001-10000字節(jié) 

3xx

301 Moved Permanently

字面意思:資源被***重定向了。這種情況下響應(yīng)的頭部字段Location中一般還會(huì)返回一個(gè)地址,用來(lái)表示要新地址。例如:

客戶端發(fā)起一個(gè)請(qǐng)求,要訪問(wèn)a站點(diǎn),此時(shí)收到的響應(yīng)如下:

 
 
 
  1. 301 Moved Permanently   
  2. ...  
  3. Location:`b.com`  
  4. ...  
  5. //上述內(nèi)容表示:親,您請(qǐng)求的資源已經(jīng)***轉(zhuǎn)移啦,這邊建議您去新的地址b.com訪問(wèn)呢,以后也請(qǐng)直接訪問(wèn)新地址哦  

302 Found

字面意思:資源臨時(shí)重定向了。和301的***區(qū)別就在于一個(gè)是臨時(shí),一個(gè)是***:還是舉上面的例子,響應(yīng)如下:

 
 
 
  1. 302 Found 
  2. ...  
  3. Location:`b.com`  
  4. ...  
  5. //上述內(nèi)容表示:親,您請(qǐng)求的資源被臨時(shí)轉(zhuǎn)移啦,后面也有可能再次轉(zhuǎn)移,所以這邊建議您本次去新的地址b.com訪問(wèn),以后的話還是先訪問(wèn)原來(lái)地址哦,有任何變化mm依然會(huì)熱心為你解答  

303 See Other

這個(gè)和302很像,但是有個(gè)細(xì)微區(qū)別是,除了會(huì)提示客戶端去請(qǐng)求Location以外,還會(huì)要求請(qǐng)求要使用Location時(shí)使用GET方法。 在這補(bǔ)充一下一個(gè)歷史背景:

請(qǐng)求返回301 302 303 時(shí),幾乎所有瀏覽器都會(huì)把原先的POST請(qǐng)求改為GET請(qǐng)求。雖然FRC1945和RFC2068規(guī)范中有規(guī)定:不允許客戶端在重定向時(shí)修改方法。

簡(jiǎn)單的說(shuō),實(shí)際的瀏覽器在處理301和302時(shí),默認(rèn)就會(huì)把原先的POST請(qǐng)求改為GET請(qǐng)求,所以實(shí)際上使用303的意義,單純只是讓語(yǔ)義化更清晰點(diǎn)。(303表示服務(wù)器明確告訴客戶端,你要使用GET方法訪問(wèn)location;如果是302,就是僅僅告訴客戶端要訪問(wèn)location,不限制方法,但是實(shí)際上客戶端自己也會(huì)用GET方法訪問(wèn)。)

304 Not Modified

字面意思是:資源未改變,可直接使用緩存。

這種響應(yīng)一般是GET請(qǐng)求中帶有附加條件,例如請(qǐng)求頭中含有if-Match,if-Modified-Since等(if-Match表示只請(qǐng)求帶有特殊標(biāo)記的資源,if-Modified-Since表示請(qǐng)求指定時(shí)間后未變更的資源,因?yàn)楸疚闹饕v解狀態(tài)碼,所以不在此引入太多http頭部的相關(guān)內(nèi)容,這里是為了簡(jiǎn)單解釋下附加條件請(qǐng)求的含義)。

這種情況下,服務(wù)端不會(huì)返回響應(yīng)主體,含義就是:”從你上次訪問(wèn)以來(lái)這個(gè)資源都沒(méi)變過(guò)喲,直接使用你本地的緩存就行啦“。

304就是3xx里面的一個(gè)特例,因?yàn)樗凰闶且粋€(gè)重定向。(一般我們認(rèn)為重定向要給出一個(gè)新的地址讓客戶端去訪問(wèn),304如果一定要解釋為重定向,只能解釋為讓客戶端轉(zhuǎn)去訪問(wèn)緩存-_-)

307 Temporary Redirect

這個(gè)重定向是為了解決前面剛剛介紹的一個(gè)歷史背景問(wèn)題:302時(shí)瀏覽器默認(rèn)會(huì)轉(zhuǎn)用GET方法去請(qǐng)求Location,而如果是307, 含義就是嚴(yán)格限制不允許從POST轉(zhuǎn)為GET,這個(gè)目前我在實(shí)際工作中很少遇到。

4xx

4xx表示一般是客戶端發(fā)生了錯(cuò)誤。(這位前端同學(xué),乖乖接了這個(gè)bug吧!)

400 Bad Request

(這個(gè)狀態(tài)碼相信大家一定很不陌生,特別是入門的新同學(xué)~)400的含義簡(jiǎn)單粗暴:“對(duì)不起,你的請(qǐng)求中有語(yǔ)法錯(cuò)誤”,那具體是什么語(yǔ)法錯(cuò)誤呢? 答案是 —— 不一定,一般來(lái)說(shuō)響應(yīng)報(bào)文里會(huì)有一些提示,例如:

  • “哎呀,你多加了什么請(qǐng)求頭,我不能接受呀”
  • “哎呀,你地址不是不是寫(xiě)錯(cuò)了,這個(gè)uri不存在啊”
  • “哎呀,你是不是請(qǐng)求方法錯(cuò)了,這個(gè)uri之只能用put而不是post”
  • 下面請(qǐng)各位隨意補(bǔ)充
  • ...

401 Unauthorized

字面意思:未經(jīng)過(guò)認(rèn)證。一般在后臺(tái)系統(tǒng)之類的應(yīng)用里,用戶登錄之后會(huì)獲得一個(gè)身份認(rèn)證信息,然后生成mac之類的信息,放在請(qǐng)求頭的Authorization字段里,發(fā)送給服務(wù)端,如果這個(gè)認(rèn)證信息有問(wèn)題或者根本沒(méi)發(fā)送,就會(huì)出現(xiàn)這個(gè)狀態(tài)碼。

403 Forbidden

這個(gè)就簡(jiǎn)單了:禁止訪問(wèn)也就是無(wú)權(quán)限訪問(wèn)。至于具體為什么禁止,服務(wù)器可以在響應(yīng)內(nèi)容的實(shí)體部分給出,當(dāng)然也可以不給(沒(méi)錯(cuò),我服務(wù)端就是這么了不起,為所欲為?。?/p>

404 Not Found

很常見(jiàn)了,字面含義,服務(wù)端沒(méi)有找到所請(qǐng)求的資源,經(jīng)驗(yàn)表明,一般這個(gè)錯(cuò)誤是客戶端的請(qǐng)求url寫(xiě)錯(cuò)了。(別問(wèn)我怎么知道的)

5xx

5xx表明服務(wù)端發(fā)生了錯(cuò)誤。(真是個(gè)令人開(kāi)心的消息,老板,你看不是我的問(wèn)題?。?/p>

500 Internal Server Error

簡(jiǎn)單粗暴,服務(wù)器故障了。啥?你問(wèn)我什么故障?我哪知道,我只會(huì)熟練地把bug轉(zhuǎn)給隔壁的服務(wù)端同學(xué)。

503 Service Unavailable

服務(wù)器暫時(shí)無(wú)法使用,可能是維護(hù)或者升級(jí),反正無(wú)法使用。

小結(jié)

本文對(duì)常見(jiàn)的一些http狀態(tài)碼和原因做了總結(jié),一方面希望能夠給更多入門的同學(xué)提供幫助,一方面也做一個(gè)歸納總結(jié),方便平時(shí)排查bug時(shí)速查,文中有一部分可能涉及到了http頭部的知識(shí),雖然也想盡可能剝離開(kāi)來(lái),但是為了解釋說(shuō)明沒(méi)法也確實(shí)完全分割開(kāi)-_-。


網(wǎng)頁(yè)名稱:http狀態(tài)碼竟然可以這樣記
當(dāng)前路徑:http://www.dlmjj.cn/article/djejogh.html