摘要:分別具體介紹幾個(gè)常用的狀態(tài)碼二成功的響應(yīng)結(jié)果表明請(qǐng)求被正常處理了。狀態(tài)碼返回時(shí),不包含任何響應(yīng)的主體部分。該狀態(tài)碼表示發(fā)送的請(qǐng)求需要有通過(guò)認(rèn)證認(rèn)證認(rèn)證的認(rèn)證信息。該狀態(tài)碼表明服務(wù)器端在執(zhí)行請(qǐng)求時(shí)發(fā)生了錯(cuò)誤。六總結(jié)狀態(tài)碼和狀況的不一致。
返回結(jié)果的 HTTP 狀態(tài)碼
一.簡(jiǎn)單介紹:
總述:HTTP 狀態(tài)碼負(fù)責(zé)表示客戶端 HTTP 請(qǐng)求的返回結(jié)果、標(biāo)記服務(wù)器端的處理是否正常、通知出現(xiàn)的錯(cuò)誤等工作。狀態(tài)碼構(gòu)成:以 3 位數(shù)字和原因短語(yǔ)組成。數(shù)字中的第一位指定了響應(yīng)類別,后兩位無(wú)分類。響應(yīng)類別有以下 5 種。
分別具體介紹幾個(gè)常用的狀態(tài)碼:
二. 2XX 成功:2XX 的響應(yīng)結(jié)果表明請(qǐng)求被正常處理了。
1.200 OK
表示從客戶端發(fā)來(lái)的請(qǐng)求在服務(wù)器端被正常處理了。
在響應(yīng)報(bào)文內(nèi),隨狀態(tài)碼一起返回的信息會(huì)因方法的不同而發(fā)生改變。比如,使用 GET 方法時(shí),對(duì)應(yīng)請(qǐng)求資源的實(shí)體會(huì)作為響應(yīng)返回;而使用 HEAD 方法時(shí),對(duì)應(yīng)請(qǐng)求資源的實(shí)體首部不隨報(bào)文主體作為響應(yīng)返回(即在響應(yīng)中只返回首部,不會(huì)返回實(shí)體的主體部分)。
2.204 No Content
該狀態(tài)碼代表服務(wù)器接收的請(qǐng)求已成功處理,但在返回的響應(yīng)報(bào)文中不含實(shí)體的主體部分。另外,也不允許返回任何實(shí)體的主體。比如, 當(dāng)從瀏覽器發(fā)出請(qǐng)求處理后,返回 204 響應(yīng),那么瀏覽器顯示的頁(yè)面不發(fā)生更新。
一般在只需要從客戶端往服務(wù)器發(fā)送信息,而對(duì)客戶端不需要發(fā)送新信息內(nèi)容的情況下使用。
3.206 Partial Content
該狀態(tài)碼表示客戶端進(jìn)行了范圍請(qǐng)求,而服務(wù)器成功執(zhí)行了這部分的 GET 請(qǐng)求。響應(yīng)報(bào)文中包含由 Content-Range 指定范圍的實(shí)體內(nèi)容。
三.3XX 重定向:響應(yīng)結(jié)果表明瀏覽器需要執(zhí)行某些特殊的處理以正確處理請(qǐng)求。
1.301 Moved Permanently
永久性重定向。該狀態(tài)碼表示請(qǐng)求的資源已被分配了新的 URI,以后應(yīng)使用資源現(xiàn)在所指的 URI。也就是說(shuō),如果已經(jīng)把資源對(duì)應(yīng)的 URI 保存為書簽了,這時(shí)應(yīng)該按 Location 首部字段提示的 URI 重新保存。 像下方給出的請(qǐng)求 URI,當(dāng)指定資源路徑的最后忘記添加斜杠“/”,就 會(huì)產(chǎn)生 301 狀態(tài)碼。如:http://example.com/sample
2.302 Found
臨時(shí)性重定向。該狀態(tài)碼表示請(qǐng)求的資源已被分配了新的 URI,希望 用戶(本次)能使用新的 URI 訪問(wèn)。 和 301 Moved Permanently 狀態(tài)碼相似,但 302 狀態(tài)碼代表的資源不是被永久移動(dòng),只是臨時(shí)性質(zhì)的。換句話說(shuō),已移動(dòng)的資源對(duì)應(yīng)的 URI 將來(lái)還有可能發(fā)生改變。比如,用戶把 URI 保存成書簽,但不會(huì)像 301 狀態(tài)碼出現(xiàn)時(shí)那樣去更新書簽,而是仍舊保留返回 302 狀態(tài)碼的頁(yè)面對(duì)應(yīng)的 URI。
3.303 See Other
該狀態(tài)碼表示由于請(qǐng)求對(duì)應(yīng)的資源存在著另一個(gè) URI,應(yīng)使用 GET 方法定向獲取請(qǐng)求的資源。
303 狀態(tài)碼和 302 Found 狀態(tài)碼有著相同的功能,但 303 狀態(tài)碼明確表示客戶端應(yīng)當(dāng)采用 GET 方法獲取資源,這點(diǎn)與 302 狀態(tài)碼有區(qū)別。
比如,當(dāng)使用 POST 方法訪問(wèn) CGI 程序,其執(zhí)行后的處理結(jié)果是希望客戶端能以 GET 方法重定向到另一個(gè) URI 上去時(shí),返回 303 狀態(tài)碼。雖然 302 Found 狀態(tài)碼也可以實(shí)現(xiàn)相同的功能,但這里使用 303 狀態(tài)碼是最理想的。
當(dāng) 301、302、303 響應(yīng)狀態(tài)碼返回時(shí),幾乎所有的瀏覽器都會(huì)把 POST 改成 GET,并刪除請(qǐng)求報(bào)文內(nèi)的主體,之后請(qǐng)求會(huì)自動(dòng)再次發(fā)送。301、302 標(biāo)準(zhǔn)是禁止將 POST 方法改變成 GET 方法的,但實(shí)際使用時(shí)大家都會(huì)這么做。
4.304 Not Modified
該狀態(tài)碼表示客戶端發(fā)送附帶條件的請(qǐng)求(附注) 時(shí),服務(wù)器端允許請(qǐng)求訪問(wèn)資源,但未滿足條件的情況。304 狀態(tài)碼返回時(shí),不包含任何響應(yīng)的主體部分。304 雖然被劃分在 3XX 類別中,但是和重定向沒(méi)有關(guān)系。
(附注)附帶條件的請(qǐng)求是指采用 GET 方法的請(qǐng)求報(bào)文中包含 If-Match,If-ModifiedSince,If-None-Match,If-Range,If-Unmodified-Since 中任一首部。
5.307 Temporary Redirect
臨時(shí)重定向。該狀態(tài)碼與 302 Found 有著相同的含義。盡管 302 標(biāo)準(zhǔn)禁止 POST 變換成 GET,但實(shí)際使用時(shí)大家并不遵守。 307 會(huì)遵照瀏覽器標(biāo)準(zhǔn),不會(huì)從 POST 變成 GET。但是,對(duì)于處理響應(yīng)時(shí)的行為,每種瀏覽器有可能出現(xiàn)不同的情況。
四. 4XX 客戶端錯(cuò)誤
1.400 Bad Request
該狀態(tài)碼表示請(qǐng)求報(bào)文中存在語(yǔ)法錯(cuò)誤。當(dāng)錯(cuò)誤發(fā)生時(shí),需修改請(qǐng)求的內(nèi)容后再次發(fā)送請(qǐng)求。另外,瀏覽器會(huì)像 200 OK 一樣對(duì)待該狀態(tài)碼。
2.401 Unauthorized
該狀態(tài)碼表示發(fā)送的請(qǐng)求需要有通過(guò) HTTP 認(rèn)證(BASIC 認(rèn)證、 DIGEST 認(rèn)證)的認(rèn)證信息。另外若之前已進(jìn)行過(guò) 1 次請(qǐng)求,則表示用戶認(rèn)證失敗。 返回含有 401 的響應(yīng)必須包含一個(gè)適用于被請(qǐng)求資源的 WWWAuthenticate 首部用以質(zhì)詢(challenge)用戶信息。當(dāng)瀏覽器初次接收到 401 響應(yīng),會(huì)彈出認(rèn)證用的對(duì)話窗口。
3.403 Forbidden
該狀態(tài)碼表明對(duì)請(qǐng)求資源的訪問(wèn)被服務(wù)器拒絕了。服務(wù)器端沒(méi)有必要 給出拒絕的詳細(xì)理由,但如果想作說(shuō)明的話,可以在實(shí)體的主體部分對(duì)原因進(jìn)行描述,這樣就能讓用戶看到了。
未獲得文件系統(tǒng)的訪問(wèn)授權(quán),訪問(wèn)權(quán)限出現(xiàn)某些問(wèn)題(從未授權(quán)的發(fā) 送源 IP 地址試圖訪問(wèn))等列舉的情況都可能是發(fā)生 403 的原因。
4.404 Not Found
該狀態(tài)碼表明服務(wù)器上無(wú)法找到請(qǐng)求的資源。除此之外,也可以在服務(wù)器端拒絕請(qǐng)求且不想說(shuō)明理由時(shí)使用。
五.5XX 服務(wù)器錯(cuò)誤:5XX 的響應(yīng)結(jié)果表明服務(wù)器本身發(fā)生錯(cuò)誤。
1.500 Internal Server Error
該狀態(tài)碼表明服務(wù)器端在執(zhí)行請(qǐng)求時(shí)發(fā)生了錯(cuò)誤。也有可能是 Web 應(yīng)用存在的 bug 或某些臨時(shí)的故障。
2.503 Service Unavailable
該狀態(tài)碼表明服務(wù)器暫時(shí)處于超負(fù)載或正在進(jìn)行停機(jī)維護(hù),現(xiàn)在無(wú)法處理請(qǐng)求。如果事先得知解除以上狀況需要的時(shí)間,最好寫入 RetryAfter 首部字段再返回給客戶端。
六.總結(jié):狀態(tài)碼和狀況的不一致。
不少返回的狀態(tài)碼響應(yīng)都是錯(cuò)誤的,但是用戶可能察覺不到這點(diǎn)。 比如 Web 應(yīng)用程序內(nèi)部發(fā)生錯(cuò)誤,狀態(tài)碼依然返回 200 OK,這種情況也經(jīng)常遇到。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/52190.html
摘要:緩存服務(wù)器是代理服務(wù)器的一種,并歸類在緩存代理類型中。若判斷緩存失效,緩存服務(wù)器將會(huì)再次從源服務(wù)器上獲取新資源。另外,和緩存服務(wù)器相同的一點(diǎn)是,當(dāng)判定緩存過(guò)期后,會(huì)向源服務(wù)器確認(rèn)資源的有效性。 與 HTTP 協(xié)作的 Web 服務(wù)器 一臺(tái) Web 服務(wù)器可搭建多個(gè)獨(dú)立域名的 Web 網(wǎng)站,也可作為通信路徑上的中轉(zhuǎn)服務(wù)器提升傳輸效率。 一. 用單臺(tái)虛擬主機(jī)實(shí)現(xiàn)多個(gè)域名 HTTP/1.1 規(guī)...
摘要:緩存服務(wù)器是代理服務(wù)器的一種,并歸類在緩存代理類型中。若判斷緩存失效,緩存服務(wù)器將會(huì)再次從源服務(wù)器上獲取新資源。另外,和緩存服務(wù)器相同的一點(diǎn)是,當(dāng)判定緩存過(guò)期后,會(huì)向源服務(wù)器確認(rèn)資源的有效性。 與 HTTP 協(xié)作的 Web 服務(wù)器 一臺(tái) Web 服務(wù)器可搭建多個(gè)獨(dú)立域名的 Web 網(wǎng)站,也可作為通信路徑上的中轉(zhuǎn)服務(wù)器提升傳輸效率。 一. 用單臺(tái)虛擬主機(jī)實(shí)現(xiàn)多個(gè)域名 HTTP/1.1 規(guī)...
摘要:步驟接收到狀態(tài)碼的客戶端為了通過(guò)認(rèn)證,需要將用戶及密碼發(fā)送給服務(wù)器。所謂雙因素認(rèn)證就是指,認(rèn)證過(guò)程中不僅需要密碼這一個(gè)因素,還需要申請(qǐng)認(rèn)證者提供其他持有信息,從而作為另一個(gè)因素,與其組合使用的認(rèn)證方式。 確認(rèn)訪問(wèn)用戶身份的認(rèn)證 某些 Web 頁(yè)面只想讓特定的人瀏覽,或者干脆僅本人可見。為達(dá)到這個(gè)目標(biāo),必不可少的就是認(rèn)證功能。下面我們一起來(lái)學(xué)習(xí)一下認(rèn)證機(jī)制。 一. 何為認(rèn)證 1.計(jì)算機(jī)...
摘要:步驟接收到狀態(tài)碼的客戶端為了通過(guò)認(rèn)證,需要將用戶及密碼發(fā)送給服務(wù)器。所謂雙因素認(rèn)證就是指,認(rèn)證過(guò)程中不僅需要密碼這一個(gè)因素,還需要申請(qǐng)認(rèn)證者提供其他持有信息,從而作為另一個(gè)因素,與其組合使用的認(rèn)證方式。 確認(rèn)訪問(wèn)用戶身份的認(rèn)證 某些 Web 頁(yè)面只想讓特定的人瀏覽,或者干脆僅本人可見。為達(dá)到這個(gè)目標(biāo),必不可少的就是認(rèn)證功能。下面我們一起來(lái)學(xué)習(xí)一下認(rèn)證機(jī)制。 一. 何為認(rèn)證 1.計(jì)算機(jī)...
摘要:步驟接收到狀態(tài)碼的客戶端為了通過(guò)認(rèn)證,需要將用戶及密碼發(fā)送給服務(wù)器。所謂雙因素認(rèn)證就是指,認(rèn)證過(guò)程中不僅需要密碼這一個(gè)因素,還需要申請(qǐng)認(rèn)證者提供其他持有信息,從而作為另一個(gè)因素,與其組合使用的認(rèn)證方式。 確認(rèn)訪問(wèn)用戶身份的認(rèn)證 某些 Web 頁(yè)面只想讓特定的人瀏覽,或者干脆僅本人可見。為達(dá)到這個(gè)目標(biāo),必不可少的就是認(rèn)證功能。下面我們一起來(lái)學(xué)習(xí)一下認(rèn)證機(jī)制。 一. 何為認(rèn)證 1.計(jì)算機(jī)...
閱讀 2318·2021-11-22 12:01
閱讀 1999·2021-11-12 10:34
閱讀 4520·2021-09-22 15:47
閱讀 2834·2019-08-30 15:56
閱讀 2866·2019-08-30 15:53
閱讀 2406·2019-08-30 13:53
閱讀 3382·2019-08-29 15:35
閱讀 3129·2019-08-29 12:27