EasyDebug.NET

HTTP 상태 코드 참조

HTTP 상태 코드 의미·해결 힌트와 Nginx·Cloudflare 확장 코드

총 68개의 상태 코드

100Continue

클라이언트가 요청 본문을 계속 전송해야 함

해결: 100-continue 대기가 타임아웃되면 Expect 헤더 제거 후 본문 바로 전송

101Switching Protocols

서버가 프로토콜 전환에 동의함(예: WebSocket 업그레이드)

해결: 업그레이드 실패 시 프록시의 Upgrade·Connection 헤더 전달 여부 확인

102Processing

요청을 받았으며 처리 중

103Early Hints

최종 응답 전에 힌트 헤더를 먼저 반환

해결: DevTools에 보이지 않는 것은 정상, CDN 조기 응답 여부 확인

200OK

요청 성공

201Created

요청 성공 및 새 리소스 생성됨

202Accepted

요청이 접수되었으나 아직 처리되지 않음

해결: 접수는 완료가 아니므로 작업 상태 API로 결과 확인

203Non-Authoritative Information

비권한 사본에서 얻은 정보

204No Content

성공했으나 응답 본문 없음

해결: 204에는 본문을 쓰지 말 것(프로토콜 오류로 처리됨)

205Reset Content

성공; 클라이언트는 뷰를 초기화해야 함

206Partial Content

부분 콘텐츠 반환(Range 요청)

해결: 이어받기 실패 시 Accept-Ranges와 Range 처리 확인

207Multi-Status

여러 상태(WebDAV)

해결: WebDAV는 XML 본문의 리소스별 상태 코드 파싱 필요

300Multiple Choices

리소스에 여러 표현이 있음

301Moved Permanently

리소스가 새 URL로 영구 이동됨

해결: 리다이렉트 루프 확인, 301은 브라우저 장기 캐시되어 되돌리기 어려움

302Found

리소스가 일시적으로 이동됨

해결: 영구 이전에는 302 대신 301·308 사용

303See Other

다른 URI를 GET으로 조회해야 함

해결: 폼 전송 후 303으로 GET 이동, 새로고침 중복 제출 방지

304Not Modified

캐시가 여전히 유효함

해결: 오래된 내용이 보이면 ETag·Last-Modified와 캐시 헤더 불일치 확인

307Temporary Redirect

요청 메서드를 유지하는 임시 리다이렉트

해결: POST가 GET으로 바뀌면 잘못된 코드, 메서드 유지에는 307

308Permanent Redirect

요청 메서드를 유지하는 영구 리다이렉트

해결: 메서드를 유지하는 영구 리다이렉트, 잘못 설정하면 장기 캐시됨

400Bad Request

잘못된 요청 구문

해결: 본문 파싱 가능 여부와 Content-Type 일치 확인

401Unauthorized

인증 필요

해결: 인증 정보 전송 여부와 WWW-Authenticate 방식 확인

402Payment Required

결제 필요(예약됨)

403Forbidden

인증되었으나 접근이 거부됨

해결: 권한 부족과 WAF·Nginx deny 차단(역시 403) 구분 필요

404Not Found

요청한 리소스를 찾을 수 없음

해결: 정적 리소스 404는 배포 경로, API 404는 라우트 접두사 확인

405Method Not Allowed

HTTP 메서드가 허용되지 않음

해결: Allow 헤더로 허용 메서드 확인, 정적 서버는 PUT·DELETE에 405 반환

406Not Acceptable

Accept 헤더를 만족할 수 없음

해결: Accept·Accept-Language와 서버 제공 형식 일치 확인

407Proxy Authentication Required

프록시 인증 필요

해결: 프록시 인증 실패, Proxy-Authorization과 프록시 설정 확인

408Request Timeout

클라이언트 요청 시간 초과

해결: 대용량 업로드 타임아웃, client_body_timeout·keepalive_timeout 상향

409Conflict

요청이 리소스 상태와 충돌함

해결: 동시 쓰기 충돌, 낙관적 잠금이나 멱등 키로 재시도

410Gone

리소스가 영구적으로 사라짐

해결: 실제 폐기된 URL에만 사용하고 내부 링크·사이트맵 정리

411Length Required

Content-Length 헤더 누락

해결: Content-Length 추가, 청크 전송 시에는 직접 쓰지 말 것

412Precondition Failed

사전 조건 헤더 검증 실패

해결: If-Match·If-Unmodified-Since와 현재 ETag 비교

413Content Too Large

요청 본문이 너무 큼

해결: client_max_body_size와 게이트웨이 본문 제한 상향

414URI Too Long

URI가 너무 김

해결: 쿼리 축약 또는 POST 사용, 비정상적으로 길면 리다이렉트 파라미터 누적 의심

415Unsupported Media Type

지원하지 않는 미디어 타입

해결: 올바른 Content-Type 지정, charset 불일치도 원인

416Range Not Satisfiable

요청한 Range 범위를 만족할 수 없음

해결: Range가 실제 리소스 길이를 초과했는지 확인

417Expectation Failed

Expect 헤더 요건 실패

해결: 서버가 Expect 미지원, 헤더 제거 후 재시도

418I'm a teapot

이스터 에그: 나는 주전자다

421Misdirected Request

요청이 응답할 수 없는 서버로 전송됨

해결: SNI·HTTP 버전 불일치와 CDN 오리진 호스트 확인

422Unprocessable Content

구문은 맞지만 의미가 잘못됨(예: 폼 검증 실패)

해결: 검증 실패이므로 응답 본문의 필드 오류 확인

425Too Early

요청이 너무 이름(재사용 위험)

해결: TLS 1.3 early data 재전송 보호, 잠시 후 재시도

426Upgrade Required

프로토콜 업그레이드 필요(예: TLS)

해결: HTTPS·프로토콜 업그레이드 강제 시 Upgrade와 TLS 설정 확인

428Precondition Required

사전 조건 헤더 필요

해결: 클라이언트가 If-Match 등 사전 조건 헤더를 보내야 함

429Too Many Requests

요청이 너무 많음(속도 제한)

해결: Retry-After 확인 후 limit_req·게이트웨이 QPS 한도 점검

431Request Header Fields Too Large

요청 헤더가 너무 큼

해결: 쿠키·사용자 헤더 축소 또는 large_client_header_buffers 상향

451Unavailable For Legal Reasons

법적 사유로 이용할 수 없음

해결: 법률·지역 정책 차단, 규정과 지역 규칙 확인

494Request Header Too LargeNginx

Nginx 확장 코드: 요청 헤더 과대

해결: large_client_header_buffers 상향 또는 쿠키·헤더 축소

495SSL Certificate ErrorNginx

Nginx 확장 코드: 클라이언트 인증서 검증 실패

해결: ssl_verify_client 설정과 클라이언트 인증서 체인 확인

496SSL Certificate RequiredNginx

Nginx 확장 코드: 클라이언트 인증서 미제공

해결: 상호 TLS 환경에서 클라이언트 인증서 전송 설정 확인

497HTTP Request Sent to HTTPS PortNginx

Nginx 확장 코드: HTTPS 포트에 HTTP 요청

해결: https로 접근하거나 error_page 497로 리다이렉트 설정

499Client Closed RequestNginx

Nginx 확장 코드: 응답 전 클라이언트 연결 종료

해결: 대개 백엔드 지연 때문, 업스트림 지연과 타임아웃 점검

500Internal Server Error

서버 내부 오류

해결: 애플리케이션 로그 후 error_log의 upstream 구간 확인

501Not Implemented

요청한 기능이 구현되지 않음

해결: 해당 기능 구현 여부와 메서드 노출 확인

502Bad Gateway

게이트웨이가 잘못된 upstream 응답을 받음

해결: 업스트림 생존 여부, 포트, 커넥션 풀 포화 확인

503Service Unavailable

서비스를 일시적으로 사용할 수 없음(과부하/점검)

해결: 백엔드 상태, 제한·서킷브레이커, 점검 모드 확인

504Gateway Timeout

게이트웨이의 upstream 대기 시간 초과

해결: proxy_read_timeout과 백엔드 지연 쿼리 확인

505HTTP Version Not Supported

지원하지 않는 HTTP 버전

해결: 클라이언트 HTTP 버전과 프로토콜 협상 설정 확인

507Insufficient Storage

저장 공간 부족(WebDAV)

해결: 저장 공간·할당량 부족, 정리 후 재시도

508Loop Detected

무한 루프 감지됨(WebDAV)

해결: WebDAV 루프 감지, 심볼릭 링크와 rewrite 규칙 확인

511Network Authentication Required

네트워크 인증 필요(예: 공용 Wi-Fi 로그인)

해결: 공용 Wi-Fi 포털 인증 필요, 인증 페이지 정상 여부 확인

520Web Server Returned an Unknown ErrorCloudflare

Cloudflare 확장 코드: 오리진 빈 응답·알 수 없는 오류

해결: 오리진 접속·페치 로그를 비교해 빈 응답 여부 확인

521Web Server Is DownCloudflare

Cloudflare 확장 코드: 오리진 서버 다운

해결: 오리진 프로세스와 리슨 포트 확인, 재시작 여부 점검

522Connection Timed OutCloudflare

Cloudflare 확장 코드: 오리진 연결 시간 초과

해결: 방화벽에서 CDN IP 허용 여부와 네트워크 도달성 확인

523Origin Is UnreachableCloudflare

Cloudflare 확장 코드: 오리진 접근 불가

해결: 오리진 주소·DNS 레코드와 내부 전용 리슨 여부 확인

524A Timeout OccurredCloudflare

Cloudflare 확장 코드: 오리진 응답 시간 초과(기본 100초)

해결: 장기 작업 비동기화·캐시 적용, 오리진 지연 쿼리 확인

525SSL Handshake FailedCloudflare

Cloudflare 확장 코드: 오리진 TLS 핸드셰이크 실패

해결: 오리진 인증서·TLS 버전·암호 스위트 호환 확인

526Invalid SSL CertificateCloudflare

Cloudflare 확장 코드: 오리진 인증서 무효

해결: 인증서 체인·도메인 일치 확인 또는 SSL 모드 조정

527Railgun Listener to Origin ErrorCloudflare

Cloudflare 확장 코드: Railgun 통신 오류(기능 종료)

해결: Railgun 서비스 종료로 과거 코드, 무시 가능

뭔가 잘못됐거나 빠진 게 있나요?

피드백 보내기
작성자의 블로그
아이디어 보내기