HTTP Status Code 是什麼?不同 HTTP 狀態碼代表什麼?教學

by 貓熊先生
HTTP Status Code 狀態碼
HTTP Status Code 狀態碼

HTTP Status Code 是伺服器對於瀏覽器的請求所給出的回應。當你瀏覽一個網站的時候,你的瀏覽器會向網站伺服器發送請求(request),無論是圖片、JS檔、CSS 檔…等等,都會發送請求,每個請求伺服器都會用一個三位數的代碼來回應瀏覽器的請求,這就是 HTTP Status Code,或者叫做「HTTP 狀態碼」。

每個 HTTP Status Code 都表達一種狀態,所以才叫做 HTTP 狀態碼。HTTP Status Code 會從 1xx 一直到 5xx。搞懂每個 HTTP Status Code 代表的意思,有助於 SEO 人員診斷網站可能是出了什麼狀況。

例如 SEO 裡面常見的「301 redirects」,代表伺服器回應瀏覽器的是 HTTP Status Code 301,這個狀態表示該網址被轉址了。HTTP Status Code 400 則是指「明顯的客戶端錯誤」,例如格式錯誤的請求語法,太大的大小,無效的請求訊息…等等。

如果你還不知道 HTTP Status Code(HTTP 狀態碼)是什麼,以及不同的 HTTP Status Code 數字分別代表什麼意思,本篇文章會有完整教學。

HTTP Status Code 是什麼?

HTTP Status Code,又叫做「HTTP 狀態碼」,是伺服器對於瀏覽器的請求所給出的回應。當你瀏覽一個網站的時候,你的瀏覽器會向網站伺服器發送請求(request),每個請求伺服器都會用一個三位數的代碼來回應瀏覽器的請求,這就是 HTTP Status Code。

了解每個 HTTP Status Code 的數字所代表的意義很重要,這樣你可以快速了解網站可能出了什麼問題,到底是伺服器端的問題,還是其它問題。

每個 HTTP Status Code 三位數狀態碼的第一個數字,會介於 1~5 之間,也就是你看到的 HTTP Status Code 會是 1xx 到 5xx,不同的 HTTP Status Code 都表示不同的伺服器回應狀態。

HTTP Status Code 狀態碼怎麼看?

你可以在很多地方看到網頁頁面的 HTTP Status Code 狀態碼到底回應的數字是什麼,例如 SEO 中強大的工具「Screaming Frog」就可以掃一個網站全部的網址,然後列出每個網址的 HTTP Status Code。

在 Chrome 瀏覽器打開 Developer tool,你也可以很清楚的在開發者工具上看到每個請求資源的 HTTP Status Code。

HTTP Status Code 狀態碼怎麼看?
HTTP Status Code 狀態碼怎麼看?

SEO 中重要常見的 HTTP Status Code

在「SEO」搜尋引擎優化裡面,有一些 HTTP Status Code 會很常見,也很重要,列在下方。

1.HTTP Status Code 200

如果 HTTP Status Code 回應狀態「200」,代表一切正常。一個運作良好的網站,頁面上的每個 HTTP Status Code 都應該要回應 200,如果你看到不是 200 的 HTTP 狀態碼,就要注意可能是什麼問題。

2.HTTP Status Code 301

HTTP Status Code 301 代表請求的頁面已經進行永久性轉址,也就是 SEO 裡面常稱的「301 redirects」。301 Redirects 又叫做 301 轉址,或稱作「301 重定向」。所謂的 Redirect 或 Redirection 就是指「轉址」的意思,將原本的網址重新定向到新的網址上。常見的有 301 Redirect、302 Redirect,差別在於前者是永久轉址,後者是暫時轉址。

關於 301 Redirects 是什麼,可以參考下面文章。

3.HTTP Status Code 302

HTTP Status Code 302 就是 SEO 中常聽到的 302 Redirects,302 Redirect 是指暫時性轉址,跟 301 轉址不一樣,301 Redirects 是永久性轉址喔!

301 Redirects 跟 302 Redirects 差在哪?

301 Redirects 是永久性轉址,而 302 Redirects 則是暫時性轉址。如果你想將舊頁面的 Pagerank 傳遞給新頁面,並且減少轉址後你的網頁在 Google 搜尋引擎排名的影響,你應該使用 301 Redirects。

4.HTTP Status Code 404

如果狀態碼回應的是 HTTP Status Code 404,代表該網頁找不到,可能是網址被移除、頁面被移除,反正就是找不到了。如果你發現你網站上有連結連到 HTTP Status Code 404 的頁面,可能就是連到的頁面已經被移除,這時候你要立即優化該連結,可能是調整內容,或是直接將這個 404 連結給移除掉。

5.HTTP Status Code 500 – 內部服務器錯誤

HTTP Status Code 500 這個狀態碼是指「內部服務器錯誤」,碰到 500 狀態碼,表示這是網站伺服器出問題,可能是伺服器掛掉,或是資料庫連線連不上掛掉之類的。

HTTP Status Code 500 是典型的伺服器錯誤,出現這個狀態碼時,表示試用者根本無法打開網頁,網頁無法正常顯示。這代表會影響使用者對你網站的訪問。碰到這種 HTTP Status Code,是屬於緊急事件,需要立即請工程師修復網站,不然流量在這段期間內都會丟失。

上面五種 HTTP Status Code,是 SEO 人最需要知道的五種 HTTP Status Code,因為通常你遇到的客戶網站上的 HTTP Status Code,不外乎就是這幾種,當然可能還有其他的,只是這幾種是最需要知道也最常見的,特別是「HTTP Status Code 301」,這是一定要知道的。

MOZ 有一篇關於「HTTP Status Code」的文章,寫得非常詳盡,建議閱讀。

HTTP Status Code 種類整理

其實維基百科對於 HTTP Status Code,有超級完整的說明,建議閱讀維基百科:「HTTP Status Code」。

以下根據維基百科,重新整理一下 HTTP Status Code(狀態碼)1xx 到 5xx 所代表的意思。

HTTP Status Code 1xx 訊息

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

HTTP Status Code 2xx 成功

這一類型的狀態碼,代表請求已成功被伺服器接收、理解、並接受。

HTTP Status Code 3xx 重新導向

這類狀態碼代表需要客戶端採取進一步的操作才能完成請求。通常,這些狀態碼用來重新導向。

HTTP Status Code 4xx 客戶端錯誤

這類的狀態碼代表了客戶端看起來可能發生了錯誤,妨礙了伺服器的處理。

HTTP Status Code 5xx 伺服器錯誤

表示伺服器無法完成明顯有效的請求。這類狀態碼代表了伺服器在處理請求的過程中有錯誤或者異常狀態發生,也有可能是伺服器意識到以當前的軟硬體資源無法完成對請求的處理。

當你在進行 SEO 搜尋引擎優化的時候,如果遇到這些 HTTP 狀態碼,你就可以參考一下維基百科的解釋,就知道可能發生什麼事了,然後就可以做出相應的處理。

最需要緊急處理的是 HTTP 狀態碼 5xx,這代表網站伺服器掛了、無法正常運作,需要趕快聯絡工程師修復才行。

HTTP Status Code 常見問題

HTTP Status Code 是什麼?

HTTP Status Code,又叫做 HTTP 狀態碼,是伺服器對於瀏覽器的請求所給出的回應。當你瀏覽一個網站的時候,你的瀏覽器會向網站伺服器發送請求,每個請求伺服器都會用一個三位數的代碼來回應瀏覽器的請求,這就是 HTTP Status Code。

HTTP Status Code 跟 SEO 有什麼關係?

知道每個 HTTP Status Code 數字背後的意思,SEO 人員就知道要如何處理。200 代表正常、301 代表網頁被永久轉址、302 代表網頁被暫時轉址、404 代表網頁被移除所以找不到、5xx 代表網站伺服器出問題,要趕快聯絡工程師修復。

HTTP Status Code 觀念總整理

從維基百科的 HTTP Status Code 頁面,你會發現數字其實有十幾二十個,從1xx一直到5xx,分別代表不同的意思。SEO 人員最需要知道的是 HTTP Status Code 200 / 301 / 302 / 404 / 5xx ,其餘的 HTTP Status Code 狀態碼,可以等遇到的時候,再上維基百科查詢一下意思。