HTTP 400 狀態碼 (錯誤的請求) - Amazon CloudFront

HTTP 400 狀態碼 (錯誤的請求)

當用戶端在請求中傳送一些無效資料時,CloudFront 會傳回 400 錯誤的請求,例如承載或參數中的遺失或不正確的內容。這也可以代表一般用戶端錯誤。

Amazon S3 原始伺服器傳回 400 錯誤

如果您使用 Amazon S3 原始伺服器搭配 CloudFront 分佈,分佈可能會傳送錯誤回應,其中包含 HTTP 狀態碼 400 錯誤的請求,以及類似下列的訊息:

授權標頭格式不正確;區域 '<AWS 區域>' 錯誤;應該為 '<AWS 區域>'

例如:

授權標頭格式不正確;區域 'us-east-1' 是錯誤的;應該是 'us-west-2'

在下列情況下可能會發生這個問題:

  1. 您的 CloudFront 分佈的來源是 Amazon S3 儲存貯體。

  2. 您將 S3 儲存貯體從一個 AWS 區域移到另一個區域。也就是說,您刪除了 S3 儲存貯體,然後您建立了具有相同儲存貯體名稱的新儲存貯體,但與原始 S3 儲存貯體位於不同的 AWS 區域中。

若要修正此錯誤,請更新您的 CloudFront 分佈,以便在儲存貯體的目前 AWS 區域中找到 S3 儲存貯體。

更新您的 CloudFront 分佈
  1. 登入 AWS 管理主控台 並開啟位於 https://console.aws.amazon.com/cloudfront/v4/home 的 CloudFront 主控台。

  2. 選擇產生此錯誤的分佈。

  3. 選擇 Origins and Origin Groups (原始伺服器和原始伺服器群組)

  4. 尋找您所移動 S3 儲存貯體的原始來源。選取此原始來源旁邊的核取方塊,然後選擇 Edit (編輯)

  5. 請選擇 Yes, Edit (是,編輯)。在選擇 Yes, Edit (是、編輯) 之前,不需要變更任何設定。

當您完成這些步驟時,CloudFront 會重新部署您的分佈。在部署分佈時,您會在上次修改的資料欄下看到部署中狀態。部署完成過一段時間後,您應該不會再收到 AuthorizationHeaderMalformed 錯誤回應。

Application Load Balancer 原始伺服器傳回 400 錯誤

如果您使用 Application Load Balancer 原始伺服器搭配 CloudFront 分佈,400 錯誤的可能原因包括下列項目:

  • 用戶端傳送不符合 HTTP 規格的格式錯誤請求。

  • 請求標頭超過每個請求行 16 KB、每個單一標頭 16 KB,或整個請求標頭 64 KB 的限制。

  • 用戶端在傳送完整請求內文之前關閉了連線。