408 Request Timeout은 서버가 기다릴 수 있는 시간 안에 완전한 요청 메시지를 받지 못했다는 뜻입니다. 서버는 유휴 상태의 keep-alive 연결에서, 또는 클라이언트가 요청을 시작했지만 헤더나 본문을 너무 느리게 보낼 때 이 코드를 보냅니다. 그런 다음 서버는 연결을 닫으며, 아직 전송 중인 요청이 있는 클라이언트는 새 연결에서 요청을 반복할 수 있습니다.
게이트웨이가 업스트림 서버를 너무 오래 기다리는 504 Gateway Timeout이나, 클라이언트가 먼저 포기했을 때 기록되는 nginx의 499와 혼동하지 마세요.
응답 예시
HTTP
HTTP/1.1 408 Request Timeout
Date: Fri, 06 Nov 2026 10:15:32 GMT
Connection: close
Content-Type: text/html
Content-Length: 54
<html><body><h1>408 Request Timeout</h1></body></html> SEO 및 리디렉션 검사
가끔 발생하는 408은 문제가 되지 않습니다. 크롤러에 408이 자주 발생한다면 서버의 요청 대기 시간이 너무 짧거나 서버가 과부하 상태라는 뜻이며, 이 경우 크롤링이 줄어들 수 있습니다. 리디렉션 검사 도구는 완전한 요청을 즉시 보내므로 408을 받는 일이 드뭅니다. 그런데도 408이 나온다면 서버나 그 앞단의 프록시가 버거워하고 있는 것입니다.
주요 원인과 사용 사례
- 느린 모바일 연결로 요청 본문이 너무 느리게 업로드됩니다.
- keep-alive 연결이 서버의 타임아웃보다 오래 유휴 상태로 남았습니다.
- 로드 밸런서나 서버의 헤더·본문 타임아웃이 너무 짧습니다. 예를 들어 nginx의
client_header_timeout과client_body_timeout이 그렇습니다. - 느린 요청 공격(Slowloris)에 대한 방어 기능이 느린 클라이언트의 연결을 끊습니다.