1. 程式人生 > 實用技巧 >【HTTP圖解】4-返回結果的HTTP狀態碼

【HTTP圖解】4-返回結果的HTTP狀態碼

目錄

狀態碼告知從伺服器端返回的請求結果

藉助狀態碼,使用者可以知道伺服器端是否正常處理了請求。狀態碼非常多,下面只介紹最常用的。

2xx成功

200 OK :

一切正常

204 No Content

該狀態碼代表伺服器接收的請求已成功處理,但在返回的響應報文中不含實體的主體部分。瀏覽器發出請求後,返回204響應,瀏覽器的頁面不會發生更新

206 Partial Content

改狀態嗎表示客戶端進行了範圍請求,而伺服器成功執行了這部分的GET請求。響應報文中包含由Content-Range指定範圍的實體內容。

3xx重定向

表明瀏覽器需要執行某些特殊的處理以正確處理請求。

客戶端使用域名 A 請求資源,但是原來指定的資源已經更換了URL,新的URL為B,伺服器端向客戶端返回狀態碼301/302,並且返回新的localtion,智慧的瀏覽器從新的localtion抓取資源進行展示,並將瀏覽器位址列的地址修改為新的地址。

301 Moved Permanently

永久性重定向

該狀態碼錶示請求的資源已被分配了新的URI,以後應該使用資源現在所指的URI。搜尋引擎收到301狀態碼之後,會向新的網址請求資源,並且自動將原來的網址替換成新的網址。

輸入網址:jingdong.com,通過F12檢視返回碼302,已經永久重定向到jd.com。說明jingdong.com未來不再使用,你需要更新新的域名。(當然jingdong.com的所有權還在京東手裡,不然它怎麼有許可權跳轉到其他的網址呢)

302 Found

臨時性重定向

和301 Moved Permanently狀態碼相似,但302狀態碼代表的資源不是被永久移動,只是臨時性質的。

代表原來的網址以後可能還會繼續使用,但是目前先重新向到其他的網址請求資源。

舉例:現在我想在沒登入的情況下訪問我的京東個人主頁,會收到302狀態碼,跳轉到京東的登入頁面。

https//home.jd.com跳轉到https://passport.jd.com/new/login.aspx

302可能會導致url劫持

現在有一個很爛的小網站,使用302指向了一個流量非常大的網站,由於小網站的域名比大網站的域名看起來更友好(簡潔),那麼搜尋引擎會繼續使用小網站的域名,但是會向大網站爬取資源。這樣就造成了在搜尋引擎的搜尋結果中,域名是小網站的域名,內容卻是大網站的內容。

303 See Other

303狀態碼和302有相同的功能,但302明確表示客戶端應該採用GET方法獲取資源,屬於HTTP/1.1的內容。

4xx客戶端錯誤

400 Bad Request

報文中存在語法錯誤,瀏覽器會像200 OK一樣對待該狀態碼。

401 Unauthorized

傳送的請求需要有通過HTTP認證的認證資訊

403 Forbidden

對請求資源的訪問被伺服器拒絕了

404 Not Found

伺服器上無法找到請求的資源

5xx伺服器錯誤

500 Internal Server Error

伺服器端在執行請求時發生了錯誤,也可能時Web應用存在的bug或某些臨時的故障。

503 Service Unavailable

伺服器暫時處於超負載或正在進行停機維護,現在無法處理請求。

不少返回的狀態碼相應都是錯誤的,但是使用者可能察覺不到。