IBM Cloud Docs
排除 400 類錯誤

排除 400 類錯誤

當客戶端出現問題且可能是網路問題時,就會出現4xx類錯誤代碼回應。

  • 4xx代碼可用作對任何請求方法的回應。
  • 原始伺服器應包含由使用者代理程式顯示的解釋,HEAD 請求除外。
  • 如果網站擁有者已建立具有封鎖操作的規則並配置了自訂回應程式碼,則自訂規則可以在 HTML 頁面中傳回 400-499 範圍內的任何回應代碼。

錯誤 400:錯誤請求

客戶端沒有向伺服器發送正確的請求。 這是客戶端錯誤,例如格式錯誤的請求語法、無效請求、訊息幀或欺騙性請求路由。 例如,如果請求包含未正確 URL 編碼(或百分比編碼)的特殊字符,則會返回 HTTP 400 錯誤。

如果您在使用 CIS API 時發生 HTTP 錯誤,請確定您的 API 呼叫使用了正確的語法、正確的參數和正文。

錯誤 401:未經授權

該請求是在沒有正確的身份驗證憑證的情況下發送的。

錯誤 403:禁止

如果您看到沒有CIS品牌的 403 錯誤,則該錯誤始終直接從來源 Web 伺服器返回,而不是CIS,並且通常與您伺服器上的權限規則。 出現此錯誤的主要原因是:

  • 您在來源 Web 伺服器上設定的權限規則(例如在Apache.htaccess 中)
  • Mod_安全規則
  • IP 拒絕規則。 確保CIS的 IP 範圍未被封鎖。

CIS 如果請求違反預設的 WAF 管理規則或針對特定區域啟用的 WAF 管理規則,則會提供 403 回應。

解析 如果您看到的 403 回應正文中包含 CIS 品牌,這是 HTTP 回應代碼連同安全功能一起傳回:

  • 具有挑戰或封鎖動作的 WAF 自訂或管理規則
  • 安全等級預設為“中”
  • 大多數1xxx CIS錯誤碼
  • 瀏覽器完整性檢查

錯誤 404:未找到

來源伺服器無法或不願意找到所要求的資源。 這通常意味著主機伺服器找不到資源。 若要提供此錯誤的更永久版本,請使用 410 錯誤代碼。

這些錯誤通常發生在以下情況:有人在您的網站上錯誤輸入 URL 時,從其他頁面連結到您的網站上的連結被斷開;先前存在的頁面被移動或移除;或搜尋引擎索引您的網站時發生錯誤。 對於典型的網站,這些錯誤約佔總頁面瀏覽量的 3%,但傳統分析平台通常無法追蹤它們。

網站所有者通常會實作一個自訂頁面,以便在產生此錯誤時提供服務。

解析 CIS不會為客戶網站產生 404 錯誤。CIS僅代理來自來源伺服器的請求。 當您看到網站的 404 時,請聯絡您的主機供應商尋求協助。

錯誤 405:方法不允許

來源伺服器知道所要求的資源,但不支援該請求方法。

解決方案來源伺服器還必須提供一個Allow 標頭,其中包含該資源支援的目標清單。

錯誤 406:不可接受

伺服器無法產生與請求的內容協商標頭中定義的可接受值清單相符的回應,且伺服器不願意提供預設表示。

解決方案您可以向使用者代理提供不太喜歡的方法,而不是產生此錯誤。

錯誤 407:需要身份驗證

用戶端未隨請求發送所需的身份驗證。

解決方案透過必要的身份驗證重試請求。

錯誤408:請求超時

源伺服器沒有在合理的時間內收到完整的請求。 此錯誤意味著伺服器不想等待並繼續連接。

解決方案此錯誤並不常見,因為伺服器通常使用“關閉”連接選項。

錯誤 409:衝突

由於與資源的當前狀態衝突,請求未完成。 此錯誤通常發生在多個用戶端嘗試編輯相同資源的 PUT 請求上。

解決方案伺服器應產生一個有效負載,其中包含足夠的信息,以便客戶端識別衝突的來源。 客戶可以而且應該再次嘗試該請求。

CIS產生並提供 Error 1001: DNS Resolution Error409 回應。

錯誤 410:消失

請求的資源在來源處永久遺失。

解析度伺服器建議刪除引用該資源的連結。 伺服器沒有資格使用此狀態代碼來代替 404 回應,或需要在任何特定時間段內獲得此回應。

錯誤 411:長度必需

客戶端在 headers 中沒有定義請求體的 Content-Length,取得資源需要該參數。

解析客戶端可以在新增標頭欄位後重新發送請求。

錯誤 412:前提條件失敗

伺服器拒絕請求,因為資源無法滿足客戶端指定的條件。

對於版本控制的範例,用戶端正在修改現有資源並設定 If-Unmodified-Since 標頭以符合客戶端下載資源並開始編輯的日期。 如果在此日期之後和上傳編輯內容之前對資源進行了編輯(可能由另一個客戶端進行),則會產生此回應,因為上次編輯的日期晚於客戶端在 If-Unmodified-Since 中設定的日期。

解析 CIS將提供此回應。

錯誤 413:有效負載過大

伺服器拒絕處理請求,因為客戶端發送的有效負載大於伺服器接受的負載。 伺服器可以關閉連線。

如果這種拒絕只是暫時發生,那麼伺服器應該發送一個 Retry-After 標頭來指定客戶端何時應該再次嘗試該請求。

CIS的上傳限制取決於您的方案。 如果超出此限制,您的 API 呼叫會收到 413 Request Entity Too Large 錯誤。

按計劃上傳限制
標準 企業
可用性
最大上傳size 200 MB 500 MB

解決方案如果您需要更大的上傳,請將請求分解為更小的區塊,將您的 DNS 記錄變更為僅 DNS,或升級您的計畫。

錯誤 414:URI 太長

伺服器拒絕 URI 太長而無法處理。 例如,如果客戶端在 POST 之後嘗試使用異常長的 URI 發出 GET 請求,則這可能會被解釋為安全風險並產生 414 錯誤。

解析 CIS將為長度超過32KB的 URI 產生此回應。

錯誤 415:不支援的媒體類型

伺服器拒絕處理目前有效負載的格式。 識別和解決此問題的一種方法是查看客戶端請求中發送的 Content-TypeContent-Encoding 標頭。

錯誤 416:範圍不可滿足

416 錯誤回應代碼表示伺服器無法提供所要求的範圍。 例如:

  • HTTP/1.1 416 Range Not Satisfiable
  • Content-Range: bytes */12777

解決方案 416 錯誤的最常見原因是該檔案不包含此類範圍。 瀏覽器通常會再次要求整個文件或中止操作。

錯誤 417:預期失敗

伺服器無法滿足客戶端請求的 Expect 標頭中指定的要求。

錯誤 429:請求過多

根據伺服器的說法,客戶端在指定時間內發送了太多請求(通常稱為「速率限制」)。 伺服器可能會回應訊息,允許請求者在特定時間段後重試請求。

CIS API 的全域速率限制為每個使用者每五分鐘 1200 個請求,並且無論請求是透過儀表板、API 金鑰或 API 令牌發出,都會累積應用。 如果超過此限制,接下來五分鐘內的所有 API 呼叫都會被阻止,並收到 HTTP 429 回應。

某些特定的 API 呼叫有其自身的限制,並會另行記錄,例如快取清除 API、GraphQL API 和規則集 API。

解決方案企業客戶可以聯繫支援人員以提高限制。

當請求受到速率限制時,CIS產生並傳送此狀態碼。 如果您網站的訪客收到這些錯誤代碼,您可以在速率限制分析中看到這一點。

錯誤 451:由於法律原因不可用

由於法律行為,伺服器無法傳送資源。

通常,搜尋引擎和 ISP 會受到此回應代碼的影響,而不是來源伺服器。 回應應在回應正文中包含解釋以及法律要求的詳細資訊。

錯誤499:客戶端關閉請求

錯誤 499 是 nginx 特定的回應代碼,用於指示當伺服器仍在處理其請求時客戶端已關閉連接,這使得伺服器無法發回狀態代碼。

此錯誤顯示在企業客戶的CIS日誌和狀態碼分析中。

由於 CIS 的合作夥伴 Cloudflare 是建基於 nginx,因此在 Cloudflare 的日誌和分析中會出現 499 HTTP 連線的代碼,這些連線會在 CIS 完成處理請求之前被終止。 當客戶端關閉連線時,預計會在日誌中看到這些內容。

為了提供更多上下文,在任何更高協定開始「對話」之前,必須在CIS和網站的來源伺服器之間建立 TCP 連線。 為了建立連接,TCP 使用三向握手:

  1. SYN:CIS傳送三個 SYN 封包給來源伺服器。
  2. SYN+ACK:作為回應,來源伺服器回覆 SYN+ACK。
  3. ACK:最後,CIS將 ACK 傳回來源伺服器。

此時,CIS和來源伺服器都已收到連線確認,並建立了通訊。 但是,如果來源伺服器在 15 秒內未向CIS傳回 SYN+ACK,CIS會再試一次。

根據客戶端的超時值,您可能會看到三種不同的場景,並產生各自的狀態代碼。

  • 如果客戶端的逾時時間較短(小於 30 秒),則會放棄連接,並且CIS會記錄 499 錯誤。
  • 如果用戶端有較高的逾時時間 (超過 30 秒),在建立 TCP 連線後,HTTP 交易會繼續。 在這種情況下,CIS 會返回正常狀態代碼 HTTP 200
  • 如果客戶端的逾時時間較長,且CIS無法與來源伺服器建立 TCP 握手,CIS傳回 HTTP 522