一次弄清常見的HTTP狀態碼

看了不少篇關於HTTP狀態碼的文章都寫的很好很詳細,可是看完幾遍仍是沒有很好的消化,遂用本身的理解把常見狀態碼的含義梳理出來php

常見狀態碼

  • 1XX Informational(請求正在處理)html

  • 2XX Success(請求成功)web

  • 3XX Redirection(重定向) 須要進行附加操做以完成請求數據庫

  • 4XX Client Error(客戶端錯誤)瀏覽器

  • 5XX Server Error(服務器錯誤)緩存

  • 200 OK 請求正常處理服務器

  • 204 請求處理成功 可是沒有任何資源返回給客戶端(通常用於只需客戶端向服務端發送消息)post

  • 206 對資源的某一部分請求 響應報文中包含由 Content-Range 指定範圍的實體內容網站

  • 301永久重定向 若是把資源對應的URI保存爲書籤,則此時書籤會根據Localtion首部字段提示的URI從新保存搜索引擎

  • 302 臨時重定向 臨時地從舊地址A跳轉到地址B

  • 303 和301,302相似 當使用post方法訪問一個資源時,把客戶端以get的方式重定向到對應的URI,返回303狀態碼

  • 304 資源已經找到,可是不知足條件,因此不把資源返回給客戶端。經常使用於協商緩存。

  • 400 請求報文內有語法錯誤

  • 401 該狀態碼錶示發送的請求須要經過HTTP認證,初次收到401響應瀏覽器彈出認證的對話窗口。若收到第二次401狀態碼,則說明第一次驗證失敗。

  • 403 請求資源的訪問被服務器拒絕,通常是未得到文件系統的訪問權限,訪問權限出現問題。

  • 404 服務器上找不到請求資源 或路徑錯誤

  • 405 請求方法被服務端識別,可是服務端禁止使用該方法。能夠用OPTIONS來查看服務器容許哪些訪問方法

  • 500 服務器端在執行請求時出錯,通常是由於web應用出現bug

  • 502 代理服務器或網關從上游服務器中收到無效響應

  • 503 服務器暫時處於超負載或停機維護,目前沒法處理請求

301和302的區別。

  301和302狀態碼都表示重定向,就是說瀏覽器在拿到服務器返回的這個狀態碼後會自動跳轉到一個新的URL地址,這個地址能夠從響應的Location首部中獲取(用戶看到的效果就是他輸入的地址A瞬間變成了另外一個地址B)——這是它們的共同點
  他們的不一樣在於。301表示舊地址A的資源已經被永久地移除了(這個資源不可訪問了),搜索引擎在抓取新內容的同時也將舊的網址交換爲重定向以後的網址;302表示舊地址A的資源還在(仍然能夠訪問),這個重定向只是臨時地從舊地址A跳轉到地址B,搜索引擎會抓取新的內容而保存舊的網址。 SEO302好於301

重定向緣由:

  1. 網站調整(如改變網頁目錄結構);
  2. 網頁被移到一個新地址;
  3. 網頁擴展名改變(如應用須要把.php改爲.Html或.shtml)。 這種狀況下,若是不作重定向,則用戶收藏夾或搜索引擎數據庫中舊地址只能讓訪問客戶獲得一個404頁面錯誤信息,訪問流量白白喪失;再者某些註冊了多個域名的網站,也須要經過重定向讓訪問這些域名的用戶自動跳轉到主站點等。
相關文章
相關標籤/搜索