431 Request Header Fields Too Large(RFC 6585)는 헤더 필드 하나 또는 헤더 전체가 너무 커서 서버가 요청을 처리하지 않겠다는 뜻입니다. 클라이언트는 헤더 크기를 줄인 뒤 다시 시도할 수 있습니다.
주범은 대개 쿠키입니다. 사이트와 하위 도메인이 쿠키를 점점 더 많이 설정하다 보면 Cookie 헤더가 서버의 제한을 넘게 됩니다. 매우 긴 Referer URL이나 큰 인증 토큰도 원인이 될 수 있습니다. 예를 들어 Node.js는 헤더가 제한을 넘으면 431로 응답하는데, 여러 로컬 프로젝트의 쿠키가 쌓이는 localhost에서 개발자가 자주 겪는 문제입니다.
모든 서버가 431을 사용하지는 않습니다. 예를 들어 nginx는 대신 “Request Header Or Cookie Too Large”와 함께 400 Bad Request를 반환합니다.
응답 예시
HTTP
HTTP/1.1 431 Request Header Fields Too Large
Connection: close SEO 및 리디렉션 검사
크롤러는 쿠키 없이 작은 헤더를 보내므로 431을 일으키는 일이 거의 없습니다. 리디렉션 검사에서 431이 나온다면 직접 추가한 사용자 지정 헤더나 쿠키의 크기를 줄이세요.
주요 원인과 사용 사례
- 도메인과 하위 도메인에 쿠키가 쌓였습니다. 쿠키를 삭제하거나, 더 적고 작은 쿠키를 설정하세요.
- 큰 JWT나 기타 인증 헤더입니다.
- 쿼리 문자열이 매우 긴 URL에서 비롯된 아주 긴
Referer헤더입니다. - Node.js 서버(
--max-http-header-size), 프록시, 로드 밸런서의 헤더 크기 제한이 낮습니다.