當瀏覽者訪問乙個網頁時,瀏覽者的瀏覽器會向網頁所在伺服器發出請求。
當瀏覽器接收並顯示網頁前,此網頁所在的伺服器會返回乙個包含http狀態碼的資訊頭(server header)用以響應瀏覽器的請求。
http狀態碼由三個十進位制數字組成,三位數字**分別代表著不同的請求狀態,第乙個十進位制數字定義了狀態碼的型別,後兩個數字沒有分類的作用。
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 人家... 還要... (初始的請求已經接受,客戶應當繼續傳送請求的其餘部分。
其餘http狀態碼介紹
有哪些常見的狀態碼?
一般只需要了解以下常見的狀態碼就夠了:
200 ok:伺服器成功處理了請求(這個是我們見到最多的)
301 moved permanently:資源移動。所請求資源自動到新的url,瀏覽器自動跳轉到新的url
400 bad request:用於告訴客戶端它傳送了乙個錯誤的請求
404 not found:(頁面丟失)未找到資源
500 internal server error:伺服器內部出現了錯誤
501 internal server error:伺服器遇到乙個錯誤,使其無法對請求提供服務
301和302都是重定向,他們之間有什麼區別呢?
301為永久移動。請求的資源已被永久的移動到新url,返回資訊會包括新的url,瀏覽器會自動定向到新url。今後任何新的請求都應使用新的url代替。
302為臨時移動。與301類似。但資源只是臨時被移動。客戶端應該繼續使用原有url。
參考文獻:
菜鳥教程
讓http萌娘幫你記住狀態碼吧
問題1:304 是什麼?
答:304表示未修改。所請求的資源未修改,伺服器返回此狀態碼時,不會返回任何資源。客戶端通常會快取訪問過的資源,通過提供乙個頭資訊指出客戶端希望只返回在指定日期之後修改的資源。
問題2:403 是什麼?
答:伺服器理解請求客戶端的請求,但是拒絕執行此請求。
問題3:為什麼要避免304請求?
答:因為我們在對檔案設定快取後,瀏覽器會將這些檔案快取在本地,當再次需要這些檔案的時候,瀏覽器仍然會傳送請求,然後伺服器會返回304,告訴瀏覽器直接用本地的快取就行了。這樣和直接使用本地快取相比,多了一次http請求。解決方案其實也簡單,給快取檔案設定乙個比較的max-age,需要更新的時候新增版本號就可以了。
HTTP狀態碼有哪些?分別代表是什麼意思?
這裡是修真院前端小課堂,每篇分享文從 八個方面深度解析前端知識 技能,本篇分享的是 http狀態碼有哪些?分別代表是什麼意思?js task5 http狀態碼有哪些?分別代表是什麼意思?1.背景介紹 當瀏覽者訪問乙個網頁時,瀏覽者的瀏覽器會向網頁所在伺服器發出請求。當瀏覽器接收並顯示網頁前,此網頁所...
HTTP 狀態碼有哪些?分別代表是什麼意思
http 狀態碼有哪些?分別代表是什麼意思 當瀏覽者訪問乙個網頁時,瀏覽者的瀏覽器會向網頁所在伺服器發出請求。當瀏覽器接收並顯示網頁前,此網頁所在的伺服器會返回乙個包含 http 狀態碼的資訊頭 server header 用以響應瀏覽器的請求。說人話 三位數字 分別代表著不同的請求狀態 http ...
HTTP狀態碼有哪些
常用得 http狀態碼 200 請求成功 301 重定向 404 未找到該檔案 500 內部伺服器錯誤了解一下 100 客戶端應當繼續傳送請求 201 請求已經被實現,而且有乙個新的資源已經依據請求的需要而建立,且其 uri 已經隨location 頭資訊返回。202 伺服器已經實現,但是並沒有處理...