什麼是HTTP狀態碼(HTTP Status Codes)?
HTTP狀態碼(HTTP Status Code)是由網站伺服器向瀏覽器通報的一個三位數的代碼,用來指示特定HTTP請求的處理狀態。當你訪問網站或發送HTTP請求時,伺服器會回應一個HTTP狀態碼,告訴客戶端發生了什麼樣的狀態。
這些狀態碼等同於瀏覽器瀏覽網站當時和伺服器之間對話,他們溝通了兩者之間是否可以接觸並且是否有問題,了解狀態代碼以及如何使用它們將有助於快速診斷網站錯誤,從而最大限度地減少網站的停機時間,您甚至可以使用這些狀態代碼中的一部分來幫助搜尋引擎和人員訪問您的網站,HTTP 狀態碼的正確性,也關係到 SEO 的友善程度。
HTTP 狀態碼分為五種回應
- 資訊回應 (Informational responses,
100
–199
): 請求已被接收,繼續處理。 - 成功回應 (Successful responses,
200
–299
): 請求已成功被伺服器接收、理解、並接受。 - 重定向 (Redirects,
300
–399
): 需要進一步的操作以完成請求。 - 用戶端錯誤 (Client errors,
400
–499
): 請求包含語法錯誤或無法完成。 - 伺服器端錯誤 (Server errors,
500
–599
): 伺服器在處理請求的過程中發生錯誤。
較常見的HTTP狀態碼
“200” OK
請求成功,很棒。
成功的意義依照 HTTP 方法而定:
- GET:資源成功獲取並於訊息主體中發送。
- HEAD:entity 標頭已於訊息主體中。
- POST:已傳送訊息主體中的 resource describing the result of the action。
- TRACE:伺服器已接收到訊息主體內含的請求訊息。
“301” Moved Permanently
已永久移動到新位置。
請求資源的 URI 已被改變。有時候,會在回應內給予新的 URI。
“302” Found(Moved Temporarily)
暫時移到新位置。
“400” Bad Request
明顯的用戶端錯誤,伺服器無法處理這個請求。
“401” Unauthorized
未認證。
需要授權以回應請求。它有點像 403,但這裡的授權,是有可能辦到的。
“403” Forbidden
沒有權限。
用戶端並無訪問權限,例如未被授權,所以伺服器拒絕給予應有的回應。不同於 401,伺服端知道用戶端的身份。
“404” Not Found
找不到資源。
這表示伺服器找不到瀏覽器正在請求的文件或網頁,404不會標註缺少的網頁或資源是否永久遺失或只是暫時遺失,您可以試試在自己網站上輸入不存在的網址,就可以看到這樣的網頁狀態碼,你的訪客如果碰到一個有404錯誤的網頁,可能會再嘗試看看,或是會尋找相同資訊的另一個網站。
網站可能會有一些回應404錯誤的網頁,這些網頁並不是只能選擇重新定向,還有其他的操作方式。許多人會誤解「將404錯誤網頁使用301重新定向,讓網頁轉移至特定網址的首頁」是維持SEO的最佳辦法,不過在多數情況來說,這並不是好方法,因為它會使用戶不明白造訪的網頁已不存在。
如果產生404錯誤網頁的網頁是流量較大的高權威網頁,或者訪客或連結想要到達的確定網址,則應該使用301個重新定向到最相關的頁面, 例如如果您的網頁設計方案不再存在,則可能需要將此URL重新定向到您的網頁設計方案分類網頁。
在這些實例以外,是有必要將失效的URL連結導向到一個404錯誤頁面,這將防止它們被搜尋引擎索引並重複爬取,按照Google Search Console指南的建議,為您的訪問者提供自定義404錯誤頁面的好的方式, 例如購物車網站在產品下架時經常會產生404錯誤頁面,所以這些網站是建置自定義的404錯誤頁面是好選擇。
“410” Gone
過時網頁。
410比404保存得更久,這代表著該網頁已經消失。 該頁面不再可用,並且沒有設定轉址,您網站上的任何指向410頁面的連結都將瀏覽器和訪客發送到一個遺失的網頁連結,所以如果您看到410頁面,請從您的網站內容中刪除任何引用或連結。
“500” Internal Server Error
伺服器端錯誤。
這問題並不是頁面缺漏或者是無法找到網頁,而是明顯的伺服器問題,500狀態碼是個典型的伺服器錯誤,將會影響瀏覽你網站的人,人類用戶和機器人同樣都會無法瀏覽,你的連結權限將無法傳遞,搜尋引擎更喜歡維護良好的網站,因此您需要調查這些狀態代碼,並在遇到這些代碼時立即進行修正。
“502” Bad Gateway
通常是伺服器的某個服務沒有正確執行。
“503” Service Unavailable
伺服器臨時維護或是快掛了,暫時無法處理請求。
500狀態碼的另一種類型,503狀態碼代表著伺服器目前無法使用,每個人(人或其他)會被要求稍後再回來,這可能是由於伺服器暫時超載或伺服器維護中,一個503狀態碼確保搜尋引擎知道情況,讓它過一陣子就會回來,表明網頁或網站只會短暫停機。
“504” Gateway Timeout
伺服器上的服務沒有回應。
透過檢查HTTP狀態碼,開發者和系統管理員可以更容易地了解伺服器的回應狀態,從而進行調試和維護。當你在瀏覽器中訪問網站時,你可能會在開發者工具中看到這些狀態碼的資訊。
200 | 請求成功,很棒。 |
301 | 已永久移動到新位置。 |
302 | 暫時移到新位置。 |
400 | 明顯的用戶端錯誤,伺服器無法處理這個請求。 |
401 | 未認證。 |
403 | 沒有權限。 |
404 | 找不到資源。 |
410 | 過時網頁。 |
500 | 伺服器端錯誤。 |
502 | 通常是伺服器的某個服務沒有正確執行。 |
503 | 伺服器臨時維護或是快掛了,暫時無法處理請求。 |
504 | 伺服器上的服務沒有回應。 |
資料來源:HTTP Status Codes、HTTP 狀態碼
延伸閱讀: