在 Web 開發領域,HTTP 錯誤代碼對影響使用者體驗和網站聲譽起著至關重要的作用。在本文中,我們將考慮伺服器錯誤代碼的完整列表,分析它們的含義,並學習如何有效地解釋伺服器回應程式碼以解決問題並優化 Web 應用程式的效能。
什麼是 HTTP 回應代碼
HTTP 回應代碼是 Web 伺服器的語言,它將瀏覽器請求轉換為可理解的指令。這就像一位詩人回答虛擬的問題,賦予它們意義和方向。回應代碼並不總是 HTTP 錯誤代碼。例如「200 OK」表示一切正常,但 HTTP 錯誤「404 Not Found」表示頁面在虛擬空間中遺失。每個程式碼都是伺服器狀態的獨特表達,對其進行解碼可以讓我們了解虛擬世界另一端正在發生的事情。
1xx 代碼(資訊)
HTTP 協定中的 1xx 狀態碼是伺服器與用戶端對話的一種第一個環節。它們不提供對請求的完整回應,而是提供有關當前狀態的信息,從而使資料交換更加有效率。讓我們仔細看看它們:
100 繼續。 HTTP 回應代碼,其中伺服器會向使用者亮起綠燈,讓他安全地繼續發送大型請求。
101 交換協議。伺服器告訴客戶端它正在改變遊戲規則,例如從 HTTP 轉移到更安全的 HTTPS。在這種情況下,“升級”標頭用於協議更改。
102 處理。這段程式碼就像一則訊息,表示伺服器已經接受了請求,但仍在忙於執行複雜的操作。
103 早期提示。在這裡,伺服器在主要回應之前向客戶端發送幾個指示性標頭,警告在不久的將來可能發生的事情。
2xx 代碼(成功)
2xx 群組內的 HTTP 錯誤代碼表示伺服器請求成功。它們本質上充當了網路通訊範圍內的“綠燈”,確認一切都按計劃進行並已成功完成。
200 OK。當伺服器順利處理 GET 方法的請求並傳回所要求的資料時,請使用此狀態。 “Content-Type”標頭報告回應中的內容類型。它只是通知客戶端請求成功。
201已創建。在這裡伺服器宣布創建新的資源。
202 已接受。伺服器讓使用者知道請求已被接受,但需要時間來回應。
203 非權威訊息。該程式碼向客戶提供的數據可能不是官方的,但可以用於比較。
204 無內容。伺服器已處理請求但未傳回任何其他內容。
205 重置內容。這裡指示客戶端在發送後重置當前視圖或資料。
第206章 部分內容。這種情況表示回應僅包含請求的部分內容。 “Content-Range”標頭指示部分內容範圍。
207 多狀態。 伺服器成功完成了來自客戶端的多操作請求,並且回應包含有關每個操作的狀態資訊。
226 即時通訊工具使用。此程式碼表示伺服器使用了增量元資料 (IM) 方法,並透過僅將修改後的資源部分傳遞給客戶端進行回應。
3xx 程式碼(重定向)
HTTP 協定中的 3xx 程式碼就像指針,引導使用者到達新的資源位置。它們通知客戶端必須採取後續步驟來取得請求的內容或重新導向到另一個資源。讓我們深入了解每一個細節:
第300章 多項選擇。客戶端收到一個訊號,表示資源有多個可能的位置,並給予一個選擇。在當前情況下,「位置」標題可能指示資源的替代選項。
301 永久移動。 伺服器向使用者報告資源已永久移動到另一個位置。
302找到了。此 HTTP 程式碼類似於暫時重定向。伺服器通知消費者該資源暫時可在不同的 URL 上使用。 「位置」標頭指向暫時重新導向的新 URL。
303 看其他。用戶端被告知資源在不同的 URL 上可用,並且必須向這個新位址發出 GET 請求。
304 未修改。這個狀態告訴客戶端該資源自上次請求以來保持不變,不需要再次下載。在發出請求時,「If-Modified-Since」標頭用於檢查資源是否已被修改。
305 使用代理。 作為回應,伺服器報告它應該使用指定的代理來存取請求的資源。
306(保留) — 該代碼已保留,但實際上並未使用。
307臨時重定向。此程式碼類似於 302 Found,但要求用戶端保留在原始請求中使用的請求方法。
308 永久重定向。表示資源已永久移至新 URI,且用戶端應在所有未來的請求中使用新 URI。
4xx HTTP 錯誤(客戶端錯誤)
HTTP 4xx 錯誤代碼表示客戶端錯誤。這意味著問題出在用戶端,例如網頁瀏覽器或應用程式。
400錯誤的請求。由於客戶端的語法錯誤、無效資料或其他錯誤,伺服器無法處理請求。
401 未經授權。 由於客戶端的語法錯誤、無效資料或其他錯誤,伺服器無法處理請求。
402 需要付款。該代碼目前未激活,保留供將來使用。這可能表明將來訪問該資源之前需要付費。
HTTP 錯誤 403 禁止。 客戶端沒有足夠的權限存取所要求的資源。
404 未找到。 所請求的資源在伺服器上不存在。這是最常見的用戶錯誤之一。
405方法不允許。此資源期間伺服器不支援指定的請求方法。 “Allow” 標頭指示資源允許的方法。使用此代碼,
406 不接受。 伺服器無法提供客戶端可以接受的格式的資料。
407 需要代理身份驗證。存取請求的資源需要在代理伺服器上進行身份驗證。
408 請求超時。伺服器正在等待接收來自客戶端的請求,但逾時了。 「Retry-After」標頭可能指示可以重試請求的時間。
409 衝突。 由於與目前資源狀態衝突,該請求無法完成。
410已經過時了。請求的資源以前存在,但現在已被刪除,並且預計無法恢復。
411 長度要求。伺服器要求在請求中指定內容長度;缺少此資訊將被視為錯誤。
412 先決條件不滿足。請求中的先決條件未被滿足,導致其無法執行。
413 負載過大。請求資料的大小超出了伺服器的限制。
414 URI 太長。請求中的 URI 長度超出了可接受的限制。
415 不支援的媒體類型。伺服器無法處理請求中提供的資料類型。
416 範圍不滿足。 HTTP 錯誤,請求的範圍與目前伺服器資料不符。
417 期望失敗。未滿足“Expect”標頭中的預期條件。
418我是茶壺。此程式碼僅作為玩笑而包含,並不意味著對用戶或伺服器採取任何實際行動,也不是一個完整的錯誤。這表明該服務器是一個茶壺,不能煮咖啡。
421 錯誤請求。由於請求或伺服器配置錯誤,伺服器未處理該請求。
422 無法處理的實體。伺服器理解該請求,但是由於資料錯誤而未處理它。
423 已鎖定。 資源被阻止,無法處理。
424 依賴失敗。該請求依賴於另一個未執行的請求。
425 太早了。 由於請求到達時間過早,伺服器尚未準備好處理該請求。
426 需要升級。伺服器需要使用更高級的協定來處理請求。
428 需要先決條件。伺服器要求在請求中指定某些先決條件。
429 請求過多。客戶端在短時間內發送了過多請求,超出了伺服器的限制。
431 請求標頭欄位太大。請求標頭超出了允許的最大大小。
449 重試。 表示該請求無法由目前伺服器執行,但可以由另一台伺服器成功處理,客戶端應使用新的 URI 重試該請求。
451 因法律因素不可用。由於法律原因,該資源不可用。
499 用戶端關閉請求。伺服器收到了請求,但是處理完成之前客戶端關閉了連線。
HTTP 5xx 錯誤(伺服器錯誤)
HTTP 5xx 錯誤代碼表示伺服器出現問題。這些程式碼表示伺服器端出現了問題,導致伺服器無法以正確的方式處理使用者的請求。讓我們仔細看看它們:
HTTP 錯誤 500 內部伺服器錯誤。伺服器遇到意外情況,導致無法完成請求。 “伺服器”標頭可能指示發生錯誤的伺服器。
501未實施。伺服器不支援處理客戶端請求所需的功能。 “Via”標頭可能指示發生錯誤的代理伺服器。
502錯誤的網關。此程式碼表示充當代理的伺服器從另一台伺服器收到了錯誤的回應。
HTTP 錯誤 503服務不可用。伺服器暫時無法處理請求。
504網關超時。充當代理的伺服器未從另一台伺服器及時收到回應。
不支持505 HTTP版本。伺服器不支援請求中指定的HTTP協定版本。作為備用選項,“升級”標題可能指示支援的協議。
506變體也進行談判。 HTTP/1.1 中不使用此狀態;但是,如果伺服器偵測到導致內容協商模糊的內部配置,則它可能會使用此回應。
507 儲存空間不足。由於伺服器儲存空間不足,因此伺服器無法滿足請求。
508 偵測到循環。伺服器在處理請求時偵測到了循環,為了避免無限循環,伺服器拒絕完成請求。
509 超出頻寬限制。當因請求量或流量過大而超出伺服器的頻寬時,就會發生錯誤。
510 未擴展。客戶端必須傳輸額外的擴充才能繼續請求。
511 需要網路身份驗證。客戶端必須進行身份驗證才能存取網路。
如何檢查頁面狀態代碼
在本節中,我們將考慮檢查頁面狀態代碼的三種主要方法:透過命令列、使用 Web 瀏覽器和使用獨立的線上服務。每種方法都有各自的優點,可以在不同情況下發揮作用。
透過命令列檢查伺服器回應
命令列提供了一種方便的方法來檢查頁面狀態代碼,而無需使用網頁瀏覽器。對於此方法,您需要打開命令列並使用以下命令:
curl -I http://page-address
此命令向指定的 URL 發送 HEAD 請求(僅標頭請求)並顯示包括 HTTP 狀態代碼在內的資訊:
上面的例子顯示了成功的回應代碼。如果回應包含錯誤代碼(例如 404 Not Found HTTP 錯誤),結果將類似:
透過瀏覽器控制台檢查伺服器回應
網頁瀏覽器開發者控制台提供了進行各種操作的工具,包括檢查頁面狀態代碼。為了查看伺服器回應中的 HTTP 程式碼,您需要根據所使用的瀏覽器開啟開發人員控制台 (Ctrl+Shift+K) 或 (Ctrl+shift+J)。接下來,選擇“網頁”部分並載入所需的頁面:
使用獨立工具檢查伺服器回應
有大量獨立的線上服務提供檢查網站頁面狀態代碼的工具。這些服務通常可讓您快速獲得資源可用性和效能的概覽。它們的運作原理都是一樣的。作為範例,我們將考慮最受歡迎的資源 - httpstatus.io
首先你需要打開該服務本身,然後輸入你需要尋找答案的頁面位址,並請求驗證:
結果將顯示在頁面底部:
結論
總之,應該強調的是,理解並能夠讀取 HTTP 錯誤代碼是任何參與 Web 開發和伺服器維護的人的關鍵技能。當我們找出每個錯誤並探索檢測它們的工具時,我們就明白為什麼有效地管理這些 Web 服務方面如此重要。