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