想必,各位都曾有過以下經歷,本想打開網頁瀏覽資訊,怎料出現的卻是個「404」?
不用懷疑,你的頁免丟失了。那麼,「404」除了代表你所要瀏覽的頁面丟失外,你可知它的產生原理?
不僅如此,在龐大的網際網路中除了404還有哪些HTTP狀態碼又分別代表著什麼?
正如上面所述,404是一種標準的HTTP返回代碼,官方稱其為HTTP狀態碼,用來表示網頁伺服器HTTP的響應狀態。
由於網站日誌通常會記錄下HTTP狀態碼,因此通過查看網站日誌中的HTTP狀態碼,便可清楚地看到網站伺服器與客戶端之間的信息交換情況。
雖然大多數的人知道404意味著頁面丟失,卻鮮有人對其進行更深入的研究。
其實,狀態碼可分成三個層級,例如404這樣用三個數字表示的。需注意的是,在IIS即Internet信息服務中,也有不少微軟制定的擴充狀態碼,例如格式像404.1這樣的,能更深層次的讓開發者找出錯誤原因。
進一步講,幾乎所有的HTTP狀態碼都被分成了五類。
『1』開頭,表示伺服器收到請求並需要請求繼續處理;『2』開頭,表成功響應,即成功處理了請求;『3』開頭,表重定向,也就是引導瀏覽器跳轉到另一個資源頁面;『4』開頭,則表示請求出錯妨礙了伺服器的處理,伺服器會返回一個狀態碼解釋到底是什麼錯誤;而『5』開頭,表示伺服器錯誤,但並非請求者的原因。
例如,與404對應的200便是表示訪問成功。實際上,請求過程中會有很多狀態碼快速的發生著變化,且看不出這些狀態碼是如何變化的,除非像打斷點似的操作一步停一下。
因此導致在伺服器響應過程中,很多狀態碼我們是看不到的。
為何要設計諸如404的頁面呢?要知道,以4開頭的錯誤都與客戶端有關,例如用戶訪問的頁面可能已經不存在。當然,這樣的概率相對於網站的其他頁面而言要小的多。
另外,由於網站的開發者也無法控制錯誤頁面的出現,開發者卻能設計一個特別的404錯誤頁面告知用戶,在此錯誤頁面上將信息傳達給用戶,引導其進行下一步操作。
那麼,HTTP狀態碼又與SEO有什麼關係呢?
像之前所說的,網站日誌會記錄下HTTP狀態碼,因而查看網站日誌裡的HTTP狀態碼,便能清楚地看到網站伺服器與客戶端之間的信息交換情況,而這個客戶端,既可以是用戶瀏覽器也可以是搜尋引擎或其他爬取工具(如RSS)。
因此,對SEO而言HTTP狀態碼的重要意義在於,通過它我們可以查看搜尋引擎在你網站的爬取情況。
除了404以外,你還知道哪些HTTP狀態碼?
其實,這些狀態碼都有各自的含義,這裡我們也向各位介紹幾個比較常見的狀態碼及其含義,方便以後瀏覽頁面遇到問題時,及時了解問題所在:
成功2xx,成功處理了請求的狀態碼。例如200,代表伺服器已成功處理請求並提供了請求的網頁;204,代表伺服器成功處理了請求,但沒有返回任何內容。
重定向3xx,表示每次請求中使用重定向不要超過5次。
例如301,表示請求的網頁已永久移動到新位置;302,表示請求的網頁臨時移動到新位置;304,表示如果網頁自請求者上次請求後沒有更新,則用304代碼告訴搜尋引擎機器人,可節約帶寬和開銷。
客戶端錯誤4xx,代表請求可能出錯妨礙了伺服器的處理。
例如400,表示伺服器不理解請求的語法;403,表示伺服器拒絕請求;404,代表伺服器找不到請求的網頁(伺服器上不存在的網頁經常會返回此代碼);410,表示請求的資源永久刪除後,伺服器返回此響應(與404代碼相似)。
伺服器錯誤5xx,表示伺服器在處理請求時內部發生錯誤,可能是伺服器本身的錯誤而非請求出錯;500代表伺服器遇到錯誤,無法完成請求;503,伺服器目前無法使用(由於超載或停機維護),通常只是暫時狀態。
其實,除了上面列出的幾個常見的HTTP狀態碼外還有很多狀態碼,這裡就不為大家一一列舉了,掌握一些基本的HTTP狀態碼,有助於我們在發現頁面出現異常時,能夠迅速「讀懂」錯誤提示,儘快解決問題,同時也是為自己長面(臭顯擺)的不錯談資。