我們常常會遇到404、500、302等提示,它們究竟是什麼意思呢?除了這幾個常見的狀態碼外,還有哪些我們沒有遇過的但有可能出現的狀態碼呢?這裡本人做了一個總結,跟大家分享一下。
HTTP狀態碼 摘要說明
-------------------------------------- -------------------------------------------------- ------------------
成功2XX 成功處理了請求的狀態碼。
200 伺服器已成功地處理了所要求並提供了要求的網頁。
204 以伺服器已成功處理了要求,但沒有回傳任何內容。
已
301 所要求的網頁且已永久移至新位置。當URLs發生變化時,使用301代碼。搜尋引擎索引中保存新的URL。
302 所使用的網頁並已暫時移至新位置。搜尋引擎索引中保存原來的URL。
304 在已要求使用網頁於請求者之後與「搜尋引擎機器人,可節省頻寬和開銷。
客戶端錯誤4XX 表示請求可能出錯,妨礙了伺服器的處理。
400 以伺服器無法理解所要求的語法。
403 則以伺服器「拒絕」請求。
404 在已中被找到要求的網頁。伺服器上不存在的網頁經常會傳回此程式碼。
410 要求的資源且已永久刪除後,且伺服器傳回此回應。程式碼與 404(未找到)程式碼相似,
但在資源以前存在而現在不存在的情況下,有時會用來取代404 程式碼。若資源已永久刪除,應使用 301 指定資源的新位置。
伺服器錯誤5XX 表示伺服器在處理請求時發生內部錯誤。這些錯誤可能是伺服器本身的錯誤,而不是請求出錯。
500 以伺服器方式產生錯誤,且無法完成請求。
503 且已使用伺服器(因超載或停機維護)。通常,這只是暫時狀態。
詳細分解:
2XX 成功
200 正常;請求已完成。
201 正常;緊接在 POST 指令。
202 正常;已接受用於處理,但處理尚未完成。
203 正常;部分訊息 — 回傳的訊息只是一部分。
204 正常;無回應 — 已接收請求,但不存在要回送的訊息。
3XX 重新導向
301 已移動 — 要求的資料具有新的位置且變更是永久的。
302 已找到 — 請求的資料暫時具有不同 URI。
303 請參閱其它 — 可在另一 URI 下找到對請求的回應,且應使用 GET 方法檢索此回應。
304 未修改 — 未如預期修改文件。
305 使用代理程式 — 必須透過位置欄位中提供的代理來存取請求的資源。
306 未使用 — 不再使用;保留此程式碼以便將來使用。
4XX 在客戶機中出現的錯誤
400 錯誤請求 — 請求中有文法問題,或無法滿足請求。
401 未授權 — 未授權客戶機存取資料。
402 需要付款 — 表示計費系統已有效。
403 禁止 — 即使有授權也不需要存取。
404 找不到 — 伺服器找不到給定的資源;文件不存在。
407 代理認證請求 — 客戶機必須先使用代理認證本身。
415 媒體類型不受支援 — 伺服器拒絕服務請求,因為不支援請求實體的格式。
5XX 伺服器中出現的錯誤
500 內部錯誤 — 因為意外狀況,伺服器不能完成請求。
501 未執行 — 伺服器不支援請求的工具。
502 錯誤閘道 — 伺服器接收到來自上游伺服器的無效回應。
503 無法取得服務 — 由於暫時過載或維護,伺服器無法處理請求。
504 Gateway Timeout
當網關或代理程式工作的伺服器嘗試執行請求時,未能及時從上游伺服器(URI標識出的伺服器,例如HTTP、FTP、LDAP)或輔助伺服器(例如DNS)收到響應。
注意:某些代理伺服器在DNS查詢逾時時會回傳400或500錯誤
505 HTTP Version Not Supported
伺服器不支持,或拒絕支援在請求中使用的 HTTP 版本。這暗示著伺服器不能或不願使用與客戶端相同的版本。回應中應包含一個描述了為何版本不被支援以及伺服器支援哪些協定的實體。
506 Variant Also Negotiates
由《透明內容協商協議》(RFC 2295)擴展,代表伺服器存在內部配置錯誤:被要求的協商變元資源被配置為在透明內容協商中使用自己,因此在一個協商處理中不是一個合適的重點。
507 Insufficient Storage
伺服器無法儲存完成請求所必須的內容。這個狀況被認為是臨時的。 WebDAV (RFC 4918)
508 Loop Detected
伺服器發現請求中出現一個無窮循環
509 Bandwidth Limit Exceeded
伺服器達到頻寬限制。這不是一個官方的狀態碼,但仍被廣泛使用。
510 Not Extended
取得資源所需的策略並沒有沒滿足。 (RFC 2774)
常見錯誤的處理方法
500錯誤
500錯誤是站長常遇到的問題,就本人的經驗,原因及解決方法歸納如下:
1、運行的用戶數過多,對伺服器造成的壓力過大,伺服器無法回應,則報HTTP500錯誤。
這個原因是網站報500錯誤的最主要原因,很多網站為什麼突然會報500錯誤(service unavailable)呢? 90%是由於空間壓力過大,超出了空間商設定的上限而造成的。
遇到這個問題,最好是第一時間找到空間商的售後服務,他們通常會幫你回收應用程式池,問題便得到解決。如果沒有找到售後服務,可以自己在空間管理後台,找到「回收應用程式集」那個項目,自己手動執行一下即可。不過,有些空間管理後台並沒有提供此項服務。
2、如果排除了第1的可能性,那麼很大原因便是程式上出現了問題。
可以做個簡單的測試頁面,看是否能運行成功,再偵測報錯的頁面,從而針對性的進行修改。
該做關聯的地方沒有去做關聯,則回報HTTP500錯誤。進行手動或自動關聯,問題解決。
3、如果測試中所進行的操作需要向資料庫中插入數據,若大數據量的情況下導致資料庫中表空間已滿,或者緩衝池較小無法滿足數據的存取等,都有可能導致HTTP500錯誤。
解決方法是調整資料庫、修改連線池大小等等,依照個人具體情況進行修正即可。
HTTP狀態碼 摘要說明
------------------------------------ -------------------------------------------------- ---------------------
成功2XX 成功處理了請求的狀態碼。
200 伺服器已成功地處理了所要求並提供了要求的網頁。
204 以伺服器已成功處理了要求,但沒有回傳任何內容。
已
301 所要求的網頁且已永久移至新位置。當URLs發生變化時,使用301代碼。搜尋引擎索引中保存新的URL。
302 所使用的網頁並已暫時移至新位置。搜尋引擎索引中保存原來的URL。
304 在已要求使用網頁於請求者之後與「搜尋引擎機器人,可節省頻寬和開銷。
客戶端錯誤4XX 表示請求可能出錯,妨礙了伺服器的處理。
400 以伺服器無法理解所要求的語法。
403 則以伺服器「拒絕」請求。
404 在已中被找到要求的網頁。伺服器上不存在的網頁經常會傳回此程式碼。
410 要求的資源且已永久刪除後,且伺服器傳回此回應。程式碼與 404(未找到)程式碼相似,
但在資源以前存在而現在不存在的情況下,有時會用來取代404 程式碼。若資源已永久刪除,應使用 301 指定資源的新位置。
伺服器錯誤5XX 表示伺服器在處理請求時發生內部錯誤。這些錯誤可能是伺服器本身的錯誤,而不是請求出錯。
500 以伺服器方式產生錯誤,且無法完成請求。
503 且已使用伺服器(因超載或停機維護)。通常,這只是暫時狀態。
詳細分解:
2XX 成功
200 正常;請求已完成。
201 正常;緊接在 POST 指令。
202 正常;已接受用於處理,但處理尚未完成。
203 正常;部分訊息 — 回傳的訊息只是一部分。
204 正常;無回應 — 已接收請求,但不存在要回送的訊息。
3XX 重新導向
301 已移動 — 要求的資料具有新的位置且變更是永久的。
302 已找到 — 請求的資料暫時具有不同 URI。
303 請參閱其它 — 可在另一 URI 下找到對請求的回應,且應使用 GET 方法檢索此回應。
304 未修改 — 未如預期修改文件。
305 使用代理程式 — 必須透過位置欄位中提供的代理來存取請求的資源。
306 未使用 — 不再使用;保留此程式碼以便將來使用。
4XX 在客戶機中出現的錯誤
400 錯誤請求 — 請求中有文法問題,或無法滿足請求。
401 未授權 — 未授權客戶機存取資料。
402 需要付款 — 表示計費系統已有效。
403 禁止 — 即使有授權也不需要存取。
404 找不到 — 伺服器找不到給定的資源;文件不存在。
407 代理認證請求 — 客戶機必須先使用代理認證本身。
415 媒體類型不受支援 — 伺服器拒絕服務請求,因為不支援請求實體的格式。
5XX 伺服器中出現的錯誤
500 內部錯誤 — 因為意外狀況,伺服器不能完成請求。
501 未執行 — 伺服器不支援請求的工具。
502 錯誤閘道 — 伺服器接收到來自上游伺服器的無效回應。
503 無法取得服務 — 由於暫時過載或維護,伺服器無法處理請求。
504 Gateway Timeout
當網關或代理程式工作的伺服器嘗試執行請求時,未能及時從上游伺服器(URI標識出的伺服器,例如HTTP、FTP、LDAP)或輔助伺服器(例如DNS)收到響應。
注意:某些代理伺服器在DNS查詢逾時時會回傳400或500錯誤
505 HTTP Version Not Supported
伺服器不支持,或拒絕支援在請求中使用的 HTTP 版本。這暗示著伺服器不能或不願使用與客戶端相同的版本。回應中應包含一個描述了為何版本不被支援以及伺服器支援哪些協定的實體。
506 Variant Also Negotiates
由《透明內容協商協議》(RFC 2295)擴展,代表伺服器存在內部配置錯誤:被要求的協商變元資源被配置為在透明內容協商中使用自己,因此在一個協商處理中不是一個合適的重點。
507 Insufficient Storage
伺服器無法儲存完成請求所必須的內容。這個狀況被認為是臨時的。 WebDAV (RFC 4918)
508 Loop Detected
伺服器發現請求中出現一個無窮循環
509 Bandwidth Limit Exceeded
伺服器達到頻寬限制。這不是一個官方的狀態碼,但仍被廣泛使用。
510 Not Extended
取得資源所需的策略並沒有沒滿足。 (RFC 2774)
常見錯誤的處理方法
500錯誤
500錯誤是站長常遇到的問題,就本人的經驗,原因及解決方法歸納如下:
1、運行的用戶數過多,對伺服器造成的壓力過大,伺服器無法回應,則報HTTP500錯誤。
這個原因是網站報500錯誤的最主要原因,很多網站為什麼突然會報500錯誤(service unavailable)呢? 90%是由於空間壓力過大,超出了空間商設定的上限而造成的。
遇到這個問題,最好是第一時間找到空間商的售後服務,他們通常會幫你回收應用程式池,問題便得到解決。如果沒有找到售後服務,可以自己在空間管理後台,找到「回收應用程式集」那個項目,自己手動執行一下即可。不過,有些空間管理後台並沒有提供此項服務。
2、如果排除了第1的可能性,那麼很大原因便是程式上出現了問題。
可以做個簡單的測試頁面,看是否能運行成功,再偵測報錯的頁面,從而針對性的進行修改。
該做關聯的地方沒有去做關聯,則回報HTTP500錯誤。進行手動或自動關聯,問題解決。
3、如果測試中所進行的操作需要向資料庫中插入數據,若大數據量的情況下導致資料庫中表空間已滿,或者緩衝池較小無法滿足數據的存取等,都有可能導致HTTP500錯誤。
解決方法是調整資料庫、修改連線池大小等等,依照個人具體情況進行修正即可。