HTTP 상태 코드 참조
HTTP 상태 코드 의미·해결 힌트와 Nginx·Cloudflare 확장 코드
총 68개의 상태 코드
클라이언트가 요청 본문을 계속 전송해야 함
해결: 100-continue 대기가 타임아웃되면 Expect 헤더 제거 후 본문 바로 전송
서버가 프로토콜 전환에 동의함(예: WebSocket 업그레이드)
해결: 업그레이드 실패 시 프록시의 Upgrade·Connection 헤더 전달 여부 확인
요청을 받았으며 처리 중
최종 응답 전에 힌트 헤더를 먼저 반환
해결: DevTools에 보이지 않는 것은 정상, CDN 조기 응답 여부 확인
요청 성공
요청 성공 및 새 리소스 생성됨
요청이 접수되었으나 아직 처리되지 않음
해결: 접수는 완료가 아니므로 작업 상태 API로 결과 확인
비권한 사본에서 얻은 정보
성공했으나 응답 본문 없음
해결: 204에는 본문을 쓰지 말 것(프로토콜 오류로 처리됨)
성공; 클라이언트는 뷰를 초기화해야 함
부분 콘텐츠 반환(Range 요청)
해결: 이어받기 실패 시 Accept-Ranges와 Range 처리 확인
여러 상태(WebDAV)
해결: WebDAV는 XML 본문의 리소스별 상태 코드 파싱 필요
리소스에 여러 표현이 있음
리소스가 새 URL로 영구 이동됨
해결: 리다이렉트 루프 확인, 301은 브라우저 장기 캐시되어 되돌리기 어려움
리소스가 일시적으로 이동됨
해결: 영구 이전에는 302 대신 301·308 사용
다른 URI를 GET으로 조회해야 함
해결: 폼 전송 후 303으로 GET 이동, 새로고침 중복 제출 방지
캐시가 여전히 유효함
해결: 오래된 내용이 보이면 ETag·Last-Modified와 캐시 헤더 불일치 확인
요청 메서드를 유지하는 임시 리다이렉트
해결: POST가 GET으로 바뀌면 잘못된 코드, 메서드 유지에는 307
요청 메서드를 유지하는 영구 리다이렉트
해결: 메서드를 유지하는 영구 리다이렉트, 잘못 설정하면 장기 캐시됨
잘못된 요청 구문
해결: 본문 파싱 가능 여부와 Content-Type 일치 확인
인증 필요
해결: 인증 정보 전송 여부와 WWW-Authenticate 방식 확인
결제 필요(예약됨)
인증되었으나 접근이 거부됨
해결: 권한 부족과 WAF·Nginx deny 차단(역시 403) 구분 필요
요청한 리소스를 찾을 수 없음
해결: 정적 리소스 404는 배포 경로, API 404는 라우트 접두사 확인
HTTP 메서드가 허용되지 않음
해결: Allow 헤더로 허용 메서드 확인, 정적 서버는 PUT·DELETE에 405 반환
Accept 헤더를 만족할 수 없음
해결: Accept·Accept-Language와 서버 제공 형식 일치 확인
프록시 인증 필요
해결: 프록시 인증 실패, Proxy-Authorization과 프록시 설정 확인
클라이언트 요청 시간 초과
해결: 대용량 업로드 타임아웃, client_body_timeout·keepalive_timeout 상향
요청이 리소스 상태와 충돌함
해결: 동시 쓰기 충돌, 낙관적 잠금이나 멱등 키로 재시도
리소스가 영구적으로 사라짐
해결: 실제 폐기된 URL에만 사용하고 내부 링크·사이트맵 정리
Content-Length 헤더 누락
해결: Content-Length 추가, 청크 전송 시에는 직접 쓰지 말 것
사전 조건 헤더 검증 실패
해결: If-Match·If-Unmodified-Since와 현재 ETag 비교
요청 본문이 너무 큼
해결: client_max_body_size와 게이트웨이 본문 제한 상향
URI가 너무 김
해결: 쿼리 축약 또는 POST 사용, 비정상적으로 길면 리다이렉트 파라미터 누적 의심
지원하지 않는 미디어 타입
해결: 올바른 Content-Type 지정, charset 불일치도 원인
요청한 Range 범위를 만족할 수 없음
해결: Range가 실제 리소스 길이를 초과했는지 확인
Expect 헤더 요건 실패
해결: 서버가 Expect 미지원, 헤더 제거 후 재시도
이스터 에그: 나는 주전자다
요청이 응답할 수 없는 서버로 전송됨
해결: SNI·HTTP 버전 불일치와 CDN 오리진 호스트 확인
구문은 맞지만 의미가 잘못됨(예: 폼 검증 실패)
해결: 검증 실패이므로 응답 본문의 필드 오류 확인
요청이 너무 이름(재사용 위험)
해결: TLS 1.3 early data 재전송 보호, 잠시 후 재시도
프로토콜 업그레이드 필요(예: TLS)
해결: HTTPS·프로토콜 업그레이드 강제 시 Upgrade와 TLS 설정 확인
사전 조건 헤더 필요
해결: 클라이언트가 If-Match 등 사전 조건 헤더를 보내야 함
요청이 너무 많음(속도 제한)
해결: Retry-After 확인 후 limit_req·게이트웨이 QPS 한도 점검
요청 헤더가 너무 큼
해결: 쿠키·사용자 헤더 축소 또는 large_client_header_buffers 상향
법적 사유로 이용할 수 없음
해결: 법률·지역 정책 차단, 규정과 지역 규칙 확인
Nginx 확장 코드: 요청 헤더 과대
해결: large_client_header_buffers 상향 또는 쿠키·헤더 축소
Nginx 확장 코드: 클라이언트 인증서 검증 실패
해결: ssl_verify_client 설정과 클라이언트 인증서 체인 확인
Nginx 확장 코드: 클라이언트 인증서 미제공
해결: 상호 TLS 환경에서 클라이언트 인증서 전송 설정 확인
Nginx 확장 코드: HTTPS 포트에 HTTP 요청
해결: https로 접근하거나 error_page 497로 리다이렉트 설정
Nginx 확장 코드: 응답 전 클라이언트 연결 종료
해결: 대개 백엔드 지연 때문, 업스트림 지연과 타임아웃 점검
서버 내부 오류
해결: 애플리케이션 로그 후 error_log의 upstream 구간 확인
요청한 기능이 구현되지 않음
해결: 해당 기능 구현 여부와 메서드 노출 확인
게이트웨이가 잘못된 upstream 응답을 받음
해결: 업스트림 생존 여부, 포트, 커넥션 풀 포화 확인
서비스를 일시적으로 사용할 수 없음(과부하/점검)
해결: 백엔드 상태, 제한·서킷브레이커, 점검 모드 확인
게이트웨이의 upstream 대기 시간 초과
해결: proxy_read_timeout과 백엔드 지연 쿼리 확인
지원하지 않는 HTTP 버전
해결: 클라이언트 HTTP 버전과 프로토콜 협상 설정 확인
저장 공간 부족(WebDAV)
해결: 저장 공간·할당량 부족, 정리 후 재시도
무한 루프 감지됨(WebDAV)
해결: WebDAV 루프 감지, 심볼릭 링크와 rewrite 규칙 확인
네트워크 인증 필요(예: 공용 Wi-Fi 로그인)
해결: 공용 Wi-Fi 포털 인증 필요, 인증 페이지 정상 여부 확인
Cloudflare 확장 코드: 오리진 빈 응답·알 수 없는 오류
해결: 오리진 접속·페치 로그를 비교해 빈 응답 여부 확인
Cloudflare 확장 코드: 오리진 서버 다운
해결: 오리진 프로세스와 리슨 포트 확인, 재시작 여부 점검
Cloudflare 확장 코드: 오리진 연결 시간 초과
해결: 방화벽에서 CDN IP 허용 여부와 네트워크 도달성 확인
Cloudflare 확장 코드: 오리진 접근 불가
해결: 오리진 주소·DNS 레코드와 내부 전용 리슨 여부 확인
Cloudflare 확장 코드: 오리진 응답 시간 초과(기본 100초)
해결: 장기 작업 비동기화·캐시 적용, 오리진 지연 쿼리 확인
Cloudflare 확장 코드: 오리진 TLS 핸드셰이크 실패
해결: 오리진 인증서·TLS 버전·암호 스위트 호환 확인
Cloudflare 확장 코드: 오리진 인증서 무효
해결: 인증서 체인·도메인 일치 확인 또는 SSL 모드 조정
Cloudflare 확장 코드: Railgun 통신 오류(기능 종료)
해결: Railgun 서비스 종료로 과거 코드, 무시 가능
뭔가 잘못됐거나 빠진 게 있나요?
피드백 보내기