1. 程式人生 > >HTTP狀態碼有哪些?分別代表是什麼意思?

HTTP狀態碼有哪些?分別代表是什麼意思?

這裡是修真院前端小課堂,每篇分享文從

【背景介紹】【知識剖析】【常見問題】【解決方案】【編碼實戰】【擴充套件思考】【更多討論】【參考文獻】

八個方面深度解析前端知識/技能,本篇分享的是:

【HTTP狀態碼有哪些?分別代表是什麼意思?】

【JS-task5】HTTP狀態碼有哪些?分別代表是什麼意思?

1.背景介紹

當瀏覽者訪問一個網頁時,瀏覽者的瀏覽器會向網頁所在伺服器發出請求。

 

當瀏覽器接收並顯示網頁前,此網頁所在的伺服器會返回一個包含HTTP狀態碼的資訊頭(server header)用以響應瀏覽器的請求。

 

HTTP狀態碼由三個十進位制數字組成,三位數字程式碼分別代表著不同的請求狀態,第一個十進位制數字定義了狀態碼的型別,後兩個數字沒有分類的作用。

2.知識剖析

HTTP狀態碼分類

HTTP狀態碼共分為5種類型:

1開頭:(被接受,需要繼續處理。)這一型別的狀態碼,代表請求已被接受,需要繼續處理。這類響應是臨時響應,只包含狀態行和某些可選的響應頭資訊,並以空行結束。

2開頭 (請求成功)這一型別的狀態碼,代表請求已成功被伺服器接收、理解、並接受

3開頭 (請求被重定向)這類狀態碼代表需要客戶端採取進一步的操作才能完成請求。通常,這些狀態碼用來重定向,後續的請求地址(重定向目標)在本次響應的 location 域中指明。

4開頭:(請求錯誤)這類的狀態碼代表了客戶端看起來可能發生了錯誤,妨礙了伺服器的處理。除非響應的是一個 HEAD 請求,否則伺服器就應該返回一個解釋當前錯誤狀況的實體,以及這是臨時的還是永久性的狀況。這些狀態碼適用於任何請求方法。瀏覽器應當向用戶顯示任何包含在此類錯誤響應中的實體內容。

5開頭:(伺服器錯誤)這類狀態碼代表了伺服器在處理請求的過程中有錯誤或者異常狀態發生,也有可能是伺服器意識到以當前的軟硬體資源無法完成對請求的處理。除非這是一個HEAD 請求,否則伺服器應當包含一個解釋當前錯誤狀態以及這個狀況是臨時的還是永久的解釋資訊實體。瀏覽器應當向用戶展示任何在當前響應中被包含的實體。

如何記憶這些狀態碼

Http 狀態碼是做Web開發的必備的基礎知識,面試中也會經常出現這方面的考題。但是要記住全部的狀態碼不是一件容易的事,部分狀態碼記憶:

200 歡迎回來,主人 (正常;請求已完成。)

301 人家搬家了 (已移動 — 請求的資料具有新的位置且更改是永久的。)

307 不是這裡,換個地方啦 (重新請求的URL,客戶端自動重新請求新的地址)

400 不要把奇怪的東西給人家嘛 (錯誤請求 — 請求中有語法問題,或不能滿足請求。)

403 這裡不可以啦!(禁止 — 即使有授權也不需要訪問。)

404 這裡什麼都沒有 --- 人家是平的啦。 (找不到 — 伺服器找不到給定的資源;文件不存在。)

405 開啟方式不對 (資源被禁止)

 

 

414 這... 太長了啦 (請求 - URI 太長)

500 服務姬壞掉了啦 (內部錯誤 — 因為意外情況,伺服器不能完成請求。)

503 不要...人家還沒準備好啦 (無法獲得服務 — 由於臨時過載或維護,伺服器無法處理請求。)

101 服務姬傲嬌中 (伺服器將遵從客戶的請求轉換到另外一種協議)

100 人家... 還要... (初始的請求已經接受,客戶應當繼續傳送請求的其餘部分。

3 常見問題

有哪些常見的狀態碼?

 

 

 

 

一般只需要瞭解以下常見的狀態碼就夠了:

200 OK:伺服器成功處理了請求(這個是我們見到最多的)

301 Moved Permanently:資源移動。所請求資源自動到新的URL,瀏覽器自動跳轉到新的URL

304 Not Modified:服務端的資源與客戶端上一次請求的一致,不需要重新傳輸,客戶端使用本地快取的即可

400 Bad Request:用於告訴客戶端它傳送了一個錯誤的請求

404 Not Found:(頁面丟失)未找到資源

500 Internal Server Error:伺服器內部出現了錯誤

501 Internal Server Error:伺服器遇到一個錯誤,使其無法對請求提供服務

5.編碼實戰

6.擴充套件思考

301和302都是重定向,他們之間有什麼區別呢?

 

 

301為永久移動。請求的資源已被永久的移動到新URL,返回資訊會包括新的URL,瀏覽器會自動定向到新URL。今後任何新的請求都應使用新的URL代替。

302為臨時移動。與301類似。但資源只是臨時被移動。客戶端應該繼續使用原有URL。

HTTP狀態碼451是什麼?

根據定義,HTTP 451錯誤程式碼狀態出現,代表該網頁可能對於國家安全產生危險,或是該網頁可能違反著作權、隱私權、褻瀆神明或其他法律或法院命令。

簡單的講 就是由於某些政治原因,所以,該頁面不予訪問

418有什麼典故?

418,內容是I'm a teapot,算是一個彩蛋。

源於IETF在1998年愚人節時釋出的一個超文字咖啡壺控制協議,當客戶端給一個茶壺傳送泡咖啡的請求時,茶壺就返回一個418錯誤狀態碼,表示“我是一個茶壺”。

7.參考文獻

參考一: 菜鳥教程

參考二: 讓HTTP萌娘幫你記住狀態碼吧

參考三: 415

參考四: 超文字咖啡壺控制協議

 

 

PPT連結 視訊連結

 

 

更多內容,可以加入IT交流群565734203與大家一起討論交流

這裡是技能樹·IT修真院:https://www.jnshu.com,初學者轉行到網際網路的聚集地