🌐 웹

HTTP 상태 코드 목록

100번대부터 500번대까지 HTTP 응답 코드 의미와 차이
데이터 읽기

HTTP 상태 코드를 100단위 그룹으로 읽습니다

HTTP 상태 코드는 서버가 요청을 어떻게 처리했는지 알려주는 표준 응답 코드입니다. 1xx, 2xx, 3xx, 4xx, 5xx 그룹별 의미를 먼저 이해하면 404, 429, 451, 500 같은 개별 오류도 더 쉽게 구분할 수 있습니다.

읽는 방법

코드 번호, 영문 이름, 한글 설명, 관련 키워드로 검색하고 100단위 그룹 또는 주요/특수 코드 필터로 범위를 좁혀 보세요. 코드 번호를 누르면 해당 행으로 바로 이동합니다.

이 페이지에서 볼 수 있는 것
  • IANA HTTP Status Code Registry 기준의 등록 코드와 표준 reason phrase
  • 100단위 클래스별 의미, 발생 상황, 확인할 점, 관련 코드
  • 451, 429, 404, 500, 503처럼 검색 수요가 큰 코드의 상세 설명
데이터 기준

IANA HTTP Status Code Registry와 RFC 9110, RFC 7725, RFC 6585 등 IETF 문서를 기준으로 정리합니다.

이 페이지는 HTTP 프로토콜 의미를 설명하는 참고 자료이며, 법률·보안·운영 판단은 각 서비스 환경과 공식 문서를 함께 확인해야 합니다.

등록 코드 64
상태 클래스 5
주요 코드 25
특수 코드 21
1xx 정보 응답 5 2xx 성공 10 3xx 리다이렉션 9 4xx 클라이언트 오류 29 5xx 서버 오류 11
🌐 HTTP 상태 코드 전체 목록
총 64개 코드

1xx Informational

요청을 받았고 처리가 계속 진행 중임을 알리는 중간 응답입니다.

5
의미 주요 상황 확인할 점
100 Continue RFC 9110 요청 헤더를 받았고 클라이언트가 본문 전송을 계속해도 된다는 뜻입니다. 큰 요청 본문을 보내기 전에 서버가 계속 진행 가능 여부를 먼저 알려줄 때 사용됩니다. Expect: 100-continue 헤더와 서버의 업로드 처리 흐름을 확인합니다. 관련: 417
101 Switching Protocols RFC 9110 클라이언트가 요청한 프로토콜 전환을 서버가 수락했다는 뜻입니다. HTTP 연결을 WebSocket 같은 다른 프로토콜로 전환할 때 볼 수 있습니다. Upgrade 헤더, Connection 헤더, 프록시의 업그레이드 전달 여부를 확인합니다. 관련: 426
102 Processing RFC 2518 요청을 받았고 처리 중이지만 아직 최종 응답은 준비되지 않았다는 뜻입니다. WebDAV처럼 처리 시간이 긴 요청에서 클라이언트 타임아웃을 줄이기 위해 사용될 수 있습니다. 최종 응답이 별도로 도착하는지, 중간 응답을 클라이언트가 올바르게 무시하는지 확인합니다. 관련: 207, 208
104 임시 Upload Resumption Supported IANA temporary registration 업로드 재개 기능을 지원한다는 임시 등록 상태 코드입니다. 대용량 업로드가 중단된 뒤 범위 기반 재개를 협상하는 실험적 흐름에서 사용될 수 있습니다. IANA 임시 등록 상태이므로 실제 서비스 적용 전 클라이언트와 서버 지원 범위를 확인합니다. 관련: 100, 201

2xx Success

요청이 정상적으로 이해되고 처리되었음을 나타냅니다.

10
의미 주요 상황 확인할 점
201 Created RFC 9110 요청이 성공했고 새 리소스가 생성되었다는 뜻입니다. POST 요청으로 게시글, 주문, 계정, 파일 같은 리소스를 새로 만들 때 적합합니다. 생성된 리소스 위치를 Location 헤더나 응답 본문으로 안내하는지 확인합니다. 관련: 200, 202, 204
202 Accepted RFC 9110 요청은 접수되었지만 처리가 아직 완료되지 않았다는 뜻입니다. 비동기 작업, 큐 처리, 배치 작업처럼 결과가 나중에 확정되는 요청에 사용됩니다. 작업 상태를 확인할 URL, 작업 ID, 재시도 안내를 응답에 포함하는 것이 좋습니다. 관련: 200, 201, 204
203 Non-Authoritative Information RFC 9110 원 서버의 200 응답을 프록시나 변환 계층이 수정해 전달했다는 뜻입니다. 중간 서버가 메타데이터나 표현을 변환한 응답을 제공할 때 사용될 수 있습니다. 원본 응답과 중간 계층의 변환 정책, Warning/캐시 헤더를 함께 확인합니다. 관련: 200, 214
204 No Content RFC 9110 요청은 성공했지만 응답 본문은 없다는 뜻입니다. 삭제, 저장, 토글 같은 작업이 성공했고 화면 이동이나 본문 반환이 필요 없을 때 사용됩니다. 204 응답에는 본문을 보내지 않아야 하며 클라이언트가 빈 응답을 오류로 처리하지 않는지 확인합니다. 관련: 200, 205
205 Reset Content RFC 9110 요청이 성공했고 클라이언트가 입력 화면을 초기화해도 된다는 뜻입니다. 폼 제출 후 같은 화면에서 입력 필드를 비우도록 안내할 때 사용할 수 있습니다. 실무에서는 드물게 쓰이며, 사용자 경험상 실제 초기화가 맞는지 확인해야 합니다. 관련: 204
207 Multi-Status RFC 4918 하나의 요청에 포함된 여러 하위 작업의 상태를 함께 담는 WebDAV 응답입니다. 여러 리소스를 동시에 처리하고 각 리소스별 성공/실패를 구분해야 할 때 사용됩니다. 응답 본문에서 리소스별 상태를 파싱해야 하며 일반 REST API에서는 별도 형식이 더 흔합니다. 관련: 102, 208
208 Already Reported RFC 5842 WebDAV 바인딩에서 이미 보고된 리소스를 반복 나열하지 않음을 나타냅니다. 동일 리소스가 여러 경로로 참조되는 WebDAV 응답에서 중복을 줄일 때 사용됩니다. WebDAV 클라이언트가 208과 207 응답 본문을 함께 처리할 수 있는지 확인합니다. 관련: 207
226 IM Used RFC 3229 서버가 인스턴스 조작(IM)을 적용한 결과를 반환했다는 뜻입니다. 델타 인코딩처럼 변경분 기반 응답을 사용할 때 정의된 코드입니다. A-IM, IM 헤더를 포함한 특수 캐시/전송 흐름이 필요하므로 일반 웹에서는 거의 사용되지 않습니다. 관련: 200, 206

3xx Redirection

요청을 완료하려면 다른 위치나 추가 동작이 필요함을 나타냅니다.

9
의미 주요 상황 확인할 점
300 Multiple Choices RFC 9110 요청한 리소스에 여러 표현이나 선택지가 있다는 뜻입니다. 같은 리소스의 언어, 형식, 버전 후보를 사용자나 클라이언트가 선택해야 할 때 사용할 수 있습니다. 실무에서는 명확한 Location을 주는 301, 302, 303, 307, 308이 더 자주 사용됩니다. 관련: 301, 302
303 See Other RFC 9110 요청 결과를 다른 URL에서 GET으로 확인하라는 뜻입니다. POST 처리 후 결과 페이지나 완료 페이지로 이동시키는 PRG 패턴에서 사용할 수 있습니다. 메서드가 GET으로 바뀌는 의미를 이해하고 폼 중복 제출 방지 흐름과 함께 확인합니다. 관련: 302, 307
305 Use Proxy RFC 9110 프록시를 통해 접근하라는 과거 상태 코드이며 현재는 보안 이유로 폐기되었습니다. 현대 웹에서는 사용하지 않는 코드로 보는 것이 안전합니다. 새 구현에 사용하지 말고 프록시 정책은 별도 설정이나 네트워크 계층에서 처리합니다. 관련: 407
306 Unused RFC 9110 과거에 정의되었지만 현재는 사용되지 않도록 예약된 상태 코드입니다. 정상적인 서버 응답으로 새로 사용하지 않습니다. 로그에서 보이면 중간 장비, 테스트 코드, 비표준 구현 여부를 확인합니다. 관련: 305
307 Temporary Redirect RFC 9110 임시 리다이렉션이며 요청 메서드와 본문을 유지해야 한다는 뜻입니다. POST, PUT 같은 메서드를 유지한 채 임시 위치로 보내야 할 때 302보다 명확합니다. 클라이언트가 메서드를 GET으로 바꾸지 않는지, Location 대상이 같은 요청을 처리하는지 확인합니다. 관련: 302, 308

4xx Client Error

요청 형식, 인증, 권한, 리소스 상태 등 클라이언트 쪽 조건 때문에 처리할 수 없음을 나타냅니다.

29
의미 주요 상황 확인할 점
402 Payment Required RFC 9110 결제가 필요하다는 목적으로 예약된 코드지만 표준 의미는 널리 정착되지 않았습니다. 일부 API나 결제 서비스에서 결제, 크레딧, 구독 문제를 표현하기 위해 비공식적으로 사용할 수 있습니다. 서비스별 API 문서에서 402의 실제 의미와 복구 방법을 확인합니다. 관련: 403, 429
405 Method Not Allowed RFC 9110 리소스는 있지만 요청한 HTTP 메서드는 허용되지 않는다는 뜻입니다. GET만 가능한 URL에 POST를 보내거나 API 라우트의 메서드 설정이 맞지 않을 때 발생합니다. Allow 헤더, 라우터 메서드 정의, 프록시의 메서드 제한 정책을 확인합니다. 관련: 404, 501
406 Not Acceptable RFC 9110 클라이언트가 Accept 헤더로 요구한 표현을 서버가 제공할 수 없다는 뜻입니다. 지원하지 않는 미디어 타입, 언어, 인코딩만 요청했을 때 발생할 수 있습니다. Accept, Accept-Language, Accept-Encoding 헤더와 서버의 콘텐츠 협상 설정을 확인합니다. 관련: 415
407 Proxy Authentication Required RFC 9110 프록시를 사용하려면 인증이 필요하다는 뜻입니다. 회사망, 보안 프록시, 게이트웨이 인증 환경에서 볼 수 있습니다. Proxy-Authenticate, Proxy-Authorization 헤더와 네트워크 프록시 설정을 확인합니다. 관련: 401, 305
408 Request Timeout RFC 9110 서버가 기다리는 시간 안에 클라이언트 요청을 완전히 받지 못했다는 뜻입니다. 느린 네트워크, 큰 업로드, 연결 유지 시간 초과, 로드밸런서 타임아웃에서 발생할 수 있습니다. 클라이언트 재시도, 업로드 크기, keep-alive 설정, 프록시 타임아웃 값을 확인합니다. 관련: 504
409 Conflict RFC 9110 요청이 현재 리소스 상태와 충돌해 처리할 수 없다는 뜻입니다. 중복 생성, 버전 충돌, 동시 수정, 상태 전이 불일치에서 자주 사용됩니다. 리소스 버전, ETag, 중복 키, 비즈니스 상태 전이 규칙을 확인합니다. 관련: 412, 422
411 Length Required RFC 9110 서버가 Content-Length 없는 요청을 거부한다는 뜻입니다. 일부 서버나 게이트웨이가 본문 길이를 미리 알아야 하는 요청에서 발생할 수 있습니다. Content-Length, Transfer-Encoding, 클라이언트 라이브러리의 스트리밍 전송 방식을 확인합니다. 관련: 413
412 Precondition Failed RFC 9110 If-Match 같은 조건부 요청의 전제 조건이 실패했다는 뜻입니다. 동시 수정 방지, 캐시 재검증, ETag 기반 업데이트에서 사용됩니다. If-Match, If-None-Match, If-Unmodified-Since와 현재 리소스 버전을 비교합니다. 관련: 304, 409, 428
414 URI Too Long RFC 9110 요청 URI가 서버가 처리할 수 있는 길이를 넘었다는 뜻입니다. 매우 긴 쿼리 문자열, 잘못된 리다이렉션 루프, GET에 과도한 데이터를 넣은 경우 발생합니다. 긴 데이터는 POST 본문으로 옮기고 프록시/서버의 URI 길이 제한을 확인합니다. 관련: 400, 431
415 Unsupported Media Type RFC 9110 요청 본문의 미디어 타입을 서버가 지원하지 않는다는 뜻입니다. JSON API에 잘못된 Content-Type을 보내거나 지원하지 않는 파일 형식을 업로드할 때 발생합니다. Content-Type, 파일 확장자, multipart 설정, 서버 파서 등록 여부를 확인합니다. 관련: 406, 422
416 Range Not Satisfiable RFC 9110 요청한 Range가 리소스 크기와 맞지 않아 제공할 수 없다는 뜻입니다. 다운로드 이어받기나 스트리밍에서 범위 값이 파일 크기를 벗어날 때 발생합니다. Range 헤더, Content-Range, 파일 크기, 캐시된 메타데이터 불일치를 확인합니다. 관련: 206
417 Expectation Failed RFC 9110 Expect 헤더의 조건을 서버가 만족할 수 없다는 뜻입니다. Expect: 100-continue 같은 기대 조건을 서버나 프록시가 지원하지 않을 때 발생할 수 있습니다. Expect 헤더를 제거하거나 서버의 100 Continue 처리 지원 여부를 확인합니다. 관련: 100
423 Locked RFC 4918 대상 리소스가 잠겨 있어 요청을 처리할 수 없다는 WebDAV 상태 코드입니다. 파일 편집 잠금, 협업 문서, WebDAV 리소스 잠금에서 사용됩니다. 잠금 소유자, 잠금 만료, 해제 API, 충돌 처리 정책을 확인합니다. 관련: 409, 424
424 Failed Dependency RFC 4918 이전 작업 실패 때문에 현재 요청도 수행할 수 없다는 WebDAV 상태 코드입니다. 여러 작업이 의존 관계를 가질 때 앞선 작업 실패가 뒤 작업 실패로 이어지는 경우 사용됩니다. 실패한 선행 작업과 현재 작업의 의존 관계를 응답 본문에 명확히 제공합니다. 관련: 207, 423
426 Upgrade Required RFC 9110 서버가 현재 프로토콜로는 요청을 처리하지 않고 업그레이드를 요구한다는 뜻입니다. HTTP 버전, TLS, WebSocket 등 특정 프로토콜 업그레이드가 필요한 경우 사용됩니다. Upgrade 헤더, 지원 프로토콜, 프록시의 업그레이드 전달 여부를 확인합니다. 관련: 101
428 Precondition Required RFC 6585 서버가 조건부 요청 헤더를 요구한다는 뜻입니다. 동시 수정으로 인한 lost update를 막기 위해 If-Match 같은 조건을 강제할 때 사용됩니다. 클라이언트가 ETag를 읽고 If-Match로 업데이트하도록 API 문서와 오류 메시지를 제공합니다. 관련: 412, 409

5xx Server Error

서버나 게이트웨이가 유효한 요청을 처리하지 못했음을 나타냅니다.

11
의미 주요 상황 확인할 점
501 Not Implemented RFC 9110 서버가 요청을 처리하는 기능을 지원하지 않는다는 뜻입니다. 지원하지 않는 HTTP 메서드나 아직 구현되지 않은 서버 기능을 요청했을 때 사용됩니다. 405는 해당 리소스에서 메서드가 금지된 경우, 501은 서버가 기능 자체를 모르는 경우에 가깝습니다. 관련: 405
505 HTTP Version Not Supported RFC 9110 서버가 요청에 사용된 HTTP 버전을 지원하지 않는다는 뜻입니다. 오래된 클라이언트, 잘못된 프록시, 서버의 HTTP 버전 제한에서 발생할 수 있습니다. 클라이언트 HTTP 버전, TLS/ALPN 협상, 프록시의 프로토콜 변환 설정을 확인합니다. 관련: 426
506 Variant Also Negotiates RFC 2295 투명 콘텐츠 협상 설정 오류로 서버 내부 협상 순환이 발생했다는 뜻입니다. 서버의 콘텐츠 협상 구성이 잘못되어 선택된 variant 자체가 다시 협상 대상이 될 때 사용됩니다. 콘텐츠 협상 설정, variant 매핑, 서버 구성 파일을 확인합니다. 관련: 300, 406
507 Insufficient Storage RFC 4918 서버가 요청을 완료하는 데 필요한 저장 공간을 확보하지 못했다는 뜻입니다. WebDAV, 파일 업로드, 스토리지 할당량 초과, 디스크 공간 부족에서 발생할 수 있습니다. 디스크 사용량, 임시 파일 저장소, 사용자 quota, 오브젝트 스토리지 오류를 확인합니다. 관련: 413, 500
508 Loop Detected RFC 5842 서버가 요청을 처리하는 중 무한 루프를 감지했다는 WebDAV 상태 코드입니다. Depth 요청이나 내부 참조 구조가 순환할 때 사용될 수 있습니다. 리소스 참조 그래프, 심볼릭 링크, WebDAV 바인딩 구조, 재귀 처리 제한을 확인합니다. 관련: 508
510 Not Extended RFC 2774 요청을 처리하려면 추가 확장이 필요하다는 뜻입니다. HTTP 확장 프레임워크에서 정의된 코드지만 일반 웹 서비스에서는 거의 사용되지 않습니다. 사용 중인 API나 서버가 요구하는 확장 조건을 문서에서 확인합니다. 관련: 501

많이 찾는 HTTP 코드 자세히 보기

표에서 빠르게 찾은 뒤, 아래 설명에서 비슷한 코드와의 차이를 확인할 수 있습니다.

HTTP 451 Unavailable For Legal Reasons

451은 법적 사유로 접근할 수 없음을 명확히 알리는 4xx 상태 코드입니다.

HTTP 451은 서버, 검색엔진, 프록시 또는 중간 서비스가 법적 요구 때문에 특정 리소스를 제공하지 못할 때 사용합니다. 단순한 권한 부족이 아니라 법원 명령, 정부 요청, 저작권 조치, 지역별 법규 같은 외부 법적 요구가 접근 제한의 배경이라는 점을 드러냅니다.

검색 결과나 브라우저에서 451을 보면 페이지가 기술적으로 사라졌다기보다, 현재 요청 위치나 서비스 정책상 법적 이유로 제공되지 않는다고 이해하는 편이 정확합니다. 서비스 제공자는 가능하다면 응답 본문에 차단 주체나 관련 법적 요구를 설명해 사용자가 상황을 이해할 수 있게 해야 합니다.

403과 차이 403은 접근 권한이 없거나 서버 정책상 금지된 경우이고, 451은 그 금지 사유가 법적 요구임을 밝힐 때 사용합니다.
404와 차이 404는 리소스를 찾을 수 없거나 존재 여부를 숨기는 응답이고, 451은 리소스가 있더라도 법적 이유로 제공하지 못한다는 의미가 더 강합니다.
410과 차이 410은 리소스가 영구 삭제되었다는 뜻이고, 451은 삭제 여부와 무관하게 접근 제공이 제한된 상태를 뜻합니다.

HTTP 429 Too Many Requests

429는 요청 제한에 걸렸다는 뜻이며 API와 로그인 보호에서 특히 자주 보입니다.

429는 클라이언트가 너무 짧은 시간 안에 많은 요청을 보냈을 때 사용합니다. 사용량 제한, 봇 방어, 로그인 시도 제한, 무료 플랜 호출 제한처럼 서비스 안정성과 남용 방지를 위한 정책과 연결됩니다.

서버는 가능하면 Retry-After 헤더나 rate limit 관련 헤더를 제공해 언제 다시 시도하면 되는지 알려주는 것이 좋습니다. 클라이언트는 즉시 반복 요청하기보다 지수 백오프와 큐 처리를 적용해야 합니다.

403과 차이 403은 접근 자체가 금지된 상태이고, 429는 일정 시간이 지나거나 사용량이 회복되면 다시 가능할 수 있습니다.
503과 차이 503은 서버가 일시적으로 처리할 수 없는 상태이고, 429는 특정 클라이언트나 토큰의 요청량이 제한을 넘은 경우에 더 가깝습니다.

HTTP 404 Not Found

404는 가장 흔한 웹 오류 코드이며 URL과 콘텐츠 상태를 먼저 확인해야 합니다.

404는 서버가 요청한 리소스를 찾지 못했다는 뜻입니다. 사용자는 URL 오타나 삭제된 페이지로 이해하지만, 서버는 보안상 존재 여부를 공개하지 않기 위해 404를 사용할 수도 있습니다.

검색 노출 관점에서는 잘못된 내부 링크, 오래된 sitemap, 삭제된 콘텐츠의 대체 페이지 누락을 함께 점검하는 것이 중요합니다. 대체 페이지가 명확하면 301, 영구 삭제가 맞으면 410도 선택지가 됩니다.

410과 차이 404는 찾을 수 없다는 일반 응답이고, 410은 과거에 존재했지만 영구적으로 사라졌다는 신호입니다.
403과 차이 403은 찾았지만 접근을 허용하지 않는 응답이고, 404는 찾지 못했거나 존재 여부를 공개하지 않는 응답입니다.

HTTP 500 Internal Server Error

500은 서버 내부에서 처리 중 예외가 발생했다는 넓은 의미의 오류입니다.

500은 클라이언트 요청 형식보다 서버 내부 로직, 설정, 의존 서비스, 데이터 처리 중 문제가 생겼을 때 사용합니다. 구체적인 예외를 사용자에게 그대로 노출하지 않기 위해 일반화된 오류 코드로 반환되는 경우가 많습니다.

운영에서는 최근 배포, 애플리케이션 로그, 에러 추적, 데이터베이스 연결, 환경 변수 누락을 우선 확인합니다. 같은 요청이 반복적으로 500을 만든다면 입력 검증이나 예외 처리 경로도 함께 보아야 합니다.

502와 차이 500은 현재 서버 내부 오류이고, 502는 게이트웨이가 상위 서버에서 잘못된 응답을 받았다는 의미입니다.
503과 차이 503은 점검이나 과부하처럼 일시적 서비스 불가를 표현하는 데 더 적합합니다.

HTTP 503 Service Unavailable

503은 서버가 일시적으로 요청을 처리할 수 없다는 뜻입니다.

503은 점검, 과부하, 배포, 백엔드 장애, 오토스케일링 지연처럼 서비스가 잠시 요청을 받을 수 없을 때 사용합니다. 검색엔진에는 일시적 문제라는 신호를 줄 수 있어, 예정된 점검에서는 500보다 503이 더 적합합니다.

가능하면 Retry-After 헤더를 포함해 다시 시도할 시간을 알려주는 것이 좋습니다. 로드밸런서 헬스체크, 큐 적체, 인스턴스 수, 의존 서비스 장애를 함께 점검합니다.

500과 차이 500은 내부 오류 전반이고, 503은 서버가 일시적으로 처리할 수 없다는 상태를 더 분명하게 표현합니다.
429와 차이 429는 요청한 클라이언트가 너무 많은 요청을 보낸 경우이고, 503은 서비스 전체 또는 일부가 처리 용량을 잃은 경우에 가깝습니다.

HTTP 상태 코드는 통신 의미를 표준화한 신호입니다. 실제 원인은 애플리케이션 로그, 프록시/CDN 설정, 인증 정책, 캐시 헤더, 배포 이력과 함께 확인해야 합니다.

출처 및 라이선스

데이터 출처 및 이용 조건

이 페이지는 아래 원천 제공자의 공개 데이터를 기반으로 합니다. 각 데이터는 원 제공자의 라이선스 또는 이용 조건을 따릅니다.

출처 데이터/API 이용 조건 Onul Works 처리
IANA HTTP Status Code Registry 이용 조건 IANA 등록 코드와 IETF RFC 설명을 100단위 그룹, 검색 태그, 주요 코드 설명으로 재구성합니다.
IETF / RFC Editor HTTP Semantics and status code RFCs 이용 조건 IANA 등록 코드와 IETF RFC 설명을 100단위 그룹, 검색 태그, 주요 코드 설명으로 재구성합니다.

Onul Works의 정규화, 번역, 병합, 캐싱 또는 단위 변환은 원 제공자의 보증이나 승인을 의미하지 않습니다.