TrueURL
TrueURL

選單

431 要求標頭欄位過大

要求的標頭過大,伺服器因此拒絕處理,原因通常是瀏覽器傳送的 Cookie 太多或太大。

原因短語
Request Header Fields Too Large
是否為重新導向
否
預設可快取
否

431 Request Header Fields Too Large(RFC 6585)表示由於單一標頭欄位或所有標頭欄位加總過大,伺服器不願處理這個要求。用戶端可以縮減標頭的大小後重試。

罪魁禍首通常是 Cookie:網站及其子網域設定的 Cookie 越來越多,直到 Cookie 標頭超過伺服器的上限。過長的 Referer 網址和大型的驗證權杖也可能造成這個問題。例如 Node.js 在標頭超過上限時會回應 431,開發人員常在 localhost 上遇到,因為那裡累積了許多本機專案的 Cookie。

並非所有伺服器都使用 431。例如 nginx 會改為回傳 400 Bad Request,並附上「Request Header Or Cookie Too Large」。

回應範例

HTTP
HTTP/1.1 431 Request Header Fields Too Large
Connection: close

SEO 與重新導向檢查

爬蟲送出的標頭很小,也不帶 Cookie,因此幾乎不會觸發 431。如果重新導向檢查回傳 431,請縮減您加入的自訂標頭或 Cookie 的大小。

常見原因與使用情境

  • 網域及其子網域累積了大量 Cookie。請清除這些 Cookie,或減少 Cookie 的數量與大小。
  • 大型的 JWT 或其他授權標頭。
  • 來自帶有超長查詢字串網址的過長 Referer 標頭。
  • Node.js 伺服器(--max-http-header-size)、代理伺服器或負載平衡器的標頭大小上限過低。

網址重新導向檢查

使用免費的 TrueURL 重新導向檢查工具,逐一查看網址在每個躍點回傳的狀態碼。