肯定很多人都聽說過HTTP 404 302 500等代碼,那這些代碼都代表什麼?如何利用這些錯誤代碼來發現你的WEB系統問題,已經最後如何解決修復這些問題。本文中,蟲蟲就和大家一起聊聊HTTP狀態碼,並告訴大家對常見的HTTP錯誤代碼問題,及其修復方案。
HTTP 狀態碼是一個客戶發出請求時候,WEB服務器返回給客戶的一個狀態回應,常見HTTP狀態有以下五類:
1.信息代碼:1xx,
2.成功代碼:2xx,
3.重定向:3xx,
4.客戶端錯誤:4xx,
5.服務器錯誤:5xx
其中,我們需要關注的是客戶端和服務器端錯誤代碼,即4xx和5xx代碼以及這些代碼的常見解決方案。
客戶端錯誤,從400到499編碼的客戶端錯誤是由客戶端引起的某些錯誤導致的,該客戶端是Web瀏覽器、curl命令或postman等其他服務器測試軟件發出的請求等。
服務器錯誤,當服務器發生錯誤或服務器識別出無法處理請求時,將發送代碼為500到599的服務器錯誤。
常見客戶端HTTP錯誤代碼:
400請求錯誤
此代碼表示服務器無法理解請求,因為語法無效。這是因為發送到服務器的請求具有無效語法。

解決:
檢查HTTP請求中可能發生的語法錯誤,確保請求的URL或者Post語法沒有錯誤。
嘗試清除瀏覽器的cookie和緩存後再試。
嘗試更新或更改瀏覽器。
有可能瀏覽器版本太老或其他問題。
401未經授權的錯誤
未經授權的錯誤意味着訪問系統需要身份驗證的,而在請求中沒有給予正當的認證憑據(密碼,token等)。這意味着服務器需要身份驗證密碼才能訪問所請求的文件或者資源。這也意味着服務器無法將您識別為具有正確身份驗證的用戶。
在這種情況下,未提供用戶名和/或密碼或未正確提供給服務器。

解決:
提供正確的身份驗證或者憑據(賬號或者token等)。
403禁止訪問
在這種情況下,客戶端無權訪問內容。這種情況下服務器識別客戶端是誰,並且用戶已向服務器發出了正確的請求,但服務器拒絕對訪問所請求的文件給出正確的響應。與此處的401不同,服務器知道客戶端的身份。

解決:
當用戶沒有訪問所請求資源的權限時,通常會發生403錯誤。通常可能是客戶端IP、Agent等被WEB服務器拒絕訪問了,比如觸發了WAF,反扒策略等,這時候可以通過修改Agent內容,更換IP等來解決。
404 文件找不到

HTTP錯誤代碼404未找到意味着用戶能夠與服務器通信,並且服務器也願意將資源發送回用戶,但是它無法找到用戶請求的資源。
如果你使用的是瀏覽器,則可能還意味着服務器無法識別該URL。或者正如我在上面所述,它也可能意味着URL有效,但是服務器上確實不再存在該資源。
這是Web上最容易識別的錯誤,最常見的錯誤之一,有很多個性化的404報錯頁面,甚至用一些公益頁面來作為404報錯頁面。

解決:
如果偶爾收到404錯誤,請在排除故障時提出一些問題。
是否犯了類型錯誤。
文件是否存在於服務器上,或者已移動或已刪除?
要查詢的目錄中是否有請求的文件。
對少數404可不必在意,如果訪問中存在大量的固定404請求,則需要排查是否有些導航頁面(比如index.html)頁面中有錯誤的設置,設置了不存在的url鏈接。
408請求超時
當服務器關閉連接時會發送此響應,因為客戶端需要很長時間才能發送請求。當客戶端連接速度較慢或服務器上存在巨大負載時,會發生這種情況。
請注意,即使沒有客戶端先前的任何請求,此錯誤響應也經常由服務器發送。這意味着服務器希望關閉此未使用的連接。
現代任何現代瀏覽器(例如chrome和firefox)都使用預連接來加速Web,如果它長時間未使用,則服務器會斷開連接。即使沒有發送消息,服務器也經常斷開連接。
429請求太多
用戶在給定的時間內發送了太多請求。這通常作為速率限制措施來完成。通常,免費API的時間提供者(例如:免費天氣API等)限制了免費用戶訪問數據的速率。
解決
等待一段時間,然後重試或閱讀與API訪問限制有關文檔來解決。
常見的服務器端HTTP錯誤代碼
500內部服務器錯誤
服務器遇到錯誤,它不知道如何處理它。常常會返回HTTP狀態碼5xx類型的以及更具體的錯誤。
導致此類錯誤的最常見原因是服務器配置錯誤。
出現這種報錯,要去查詢服務器詳細的錯誤日誌,或者相關應用服務器的日誌(比如PHP,java日誌)來得到詳細原因,在具體問題具體解決。

502錯誤的網關
服務器在工作以獲取處理請求所需的另一台服務器的響應(接口,數據庫等)時得到的響應無效。

客戶端發送請求的服務器是代理服務器(nginx反帶),需要從另一台服務器獲取數據。
最常見的原因是服務器配置錯誤。缺少軟件包或不正確的負載平衡服務器可能會導致這些錯誤。
比如常見的nginx 502問題,就是反帶的後端服務器有問題了,訪問不了了,會報502錯誤。
503服務不可用
服務器無法處理請求可能的原因可能是服務器由於某些其他原因而處於維護或關閉狀態,或者服務器過載並且無法處理請求。

如果服務器未關閉,則可能是服務器資源(如CPU ram或帶寬)無法處理流量。需要重新配置任一服務器以通過增加資源來允許更多流量,或者必須進行一些其他優化。
注意:如果你在重載時間或其他原因發送此響應,則還應發送用戶友好的html頁面或消息,說明問題以及解決問題的估計時間範圍,可以使用Retry-After:HTTP頭來說明。
在這些臨時條件下,還應注意不要發送與緩存相關的標頭。
504網關超時
當服務器充當網關或代理服務器並且無法在規定的時間段內從代理服務器獲得響應時,將收到此錯誤。

主要原因和解決方案:
父服務器負載很重。
由於位置或帶寬較慢,服務器之間存在大量延遲
上面就是常見的HTTP錯誤及一般原因和解決方法,但是在了解到詳細的原因之後,才有具體詳細的解決方案。當然服務器有狀態碼返回的話,起碼能說明服務器網絡和端口都是通的,我不需要花費大量時間去排查網絡、防火牆和服務啟動的問題了。
原創文章,作者:投稿專員,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/268946.html
微信掃一掃
支付寶掃一掃