HTTP 상태 코드: 완전 레퍼런스
모든 HTTP 응답에는 요청 결과를 알려주는 세 자리 상태 코드가 담깁니다. 첫 자리가 클래스를 정하므로 처음 보는 코드라도 의도를 한눈에 읽을 수 있습니다. 아래는 전체 검색 가능한 목록입니다.
- 1xx — 정보: 요청을 받았고 계속 진행 중.
- 2xx — 성공: 요청이 수신되고 수락됨.
- 3xx — 리다이렉션: 완료하려면 추가 동작이 필요.
- 4xx — 클라이언트 오류: 요청에 문제가 있음.
- 5xx — 서버 오류: 유효한 요청을 서버가 처리하지 못함.
업데이트 2026-07-06
| 코드 | 이름 | 의미 |
|---|---|---|
| 100 | Continue | 요청의 앞부분이 수신됨; 클라이언트는 본문 전송을 계속해야 함. |
| 101 | Switching Protocols | 클라이언트 요청에 따라 서버가 프로토콜 전환에 동의함(예: WebSocket으로). |
| 102 | Processing | 서버가 요청을 받아 처리 중이나 아직 응답이 없음(WebDAV). |
| 103 | Early Hints | 최종 응답 전에 보내는 프리로드 힌트로, 브라우저가 리소스를 미리 가져오게 함. |
| 200 | OK | 표준 성공 응답. 의미는 메서드에 따라 다름(GET은 리소스, POST는 결과 반환). |
| 201 | Created | 요청이 성공했고 새 리소스가 생성됨. 보통 위치와 함께 반환됨. |
| 202 | Accepted | 요청이 처리를 위해 수락되었으나 처리는 완료되지 않음. |
| 203 | Non-Authoritative Information | 응답이 원본이 아니라 변환 프록시가 수정한 버전임. |
| 204 | No Content | 요청은 성공했지만 반환할 콘텐츠가 없음. |
| 205 | Reset Content | 성공; 클라이언트는 문서 뷰를 초기화해야 함(예: 폼 비우기). |
| 206 | Partial Content | Range 헤더에 대한 응답으로 서버가 리소스의 일부만 전달함. |
| 207 | Multi-Status | WebDAV에서 여러 리소스에 대한 정보를 전달함. |
| 208 | Already Reported | 이미 열거된 WebDAV 바인딩 멤버는 다시 나열하지 않음. |
| 226 | IM Used | 서버가 GET을 처리했고 응답이 적용된 인스턴스 조작을 나타냄. |
| 300 | Multiple Choices | 요청에 가능한 응답이 여러 개임; 클라이언트가 하나를 선택할 수 있음. |
| 301 | Moved Permanently | 리소스가 새 URL로 영구 이동됨; 링크와 북마크를 갱신할 것. |
| 302 | Found | 리소스가 일시적으로 다른 URL에 있음; 이후 요청에는 원래 URL을 계속 사용. |
| 303 | See Other | 응답을 다른 URL에서 찾을 수 있으며 GET으로 가져와야 함. |
| 304 | Not Modified | 캐시된 버전이 여전히 유효함; 클라이언트가 재사용 가능(조건부 요청). |
| 307 | Temporary Redirect | 302와 같지만 리다이렉트 시 메서드와 본문이 바뀌면 안 됨. |
| 308 | Permanent Redirect | 301과 같지만 리다이렉트 시 메서드와 본문이 바뀌면 안 됨. |
| 400 | Bad Request | 클라이언트 오류(잘못된 문법, 유효하지 않은 프레이밍)로 서버가 요청을 처리할 수 없음. |
| 401 | Unauthorized | 인증이 필요한데 실패했거나 제공되지 않음. |
| 402 | Payment Required | 향후 사용을 위해 예약됨; 가끔 API가 결제 문제를 알리는 데 사용. |
| 403 | Forbidden | 서버가 요청을 이해했으나 인가를 거부함. |
| 404 | Not Found | 서버가 요청한 리소스를 찾을 수 없음. 가장 익숙한 오류. |
| 405 | Method Not Allowed | 이 리소스에 대해 해당 HTTP 메서드가 지원되지 않음. |
| 406 | Not Acceptable | 요청의 Accept 헤더에 맞는 콘텐츠를 리소스가 생성할 수 없음. |
| 407 | Proxy Authentication Required | 클라이언트가 먼저 프록시에 인증해야 함. |
| 408 | Request Timeout | 서버가 요청을 기다리다 시간 초과됨. |
| 409 | Conflict | 요청이 리소스의 현재 상태와 충돌함(예: 편집 충돌). |
| 410 | Gone | 리소스가 영구히 사라졌고 전달 주소도 알려지지 않음. |
| 411 | Length Required | 요청에 Content-Length 헤더를 지정해야 함. |
| 412 | Precondition Failed | 요청 헤더의 전제 조건이 거짓으로 평가됨. |
| 413 | Payload Too Large | 요청 본문이 서버가 처리하려는 크기보다 큼. |
| 414 | URI Too Long | 요청한 URL이 서버가 해석할 길이보다 긺. |
| 415 | Unsupported Media Type | 요청의 미디어 타입이 리소스에서 지원되지 않음. |
| 416 | Range Not Satisfiable | 요청한 Range를 충족할 수 없음. |
| 417 | Expectation Failed | Expect 헤더의 기대를 충족할 수 없음. |
| 418 | I'm a teapot | 만우절 농담 코드(RFC 2324); 서버가 커피 내리기를 거부함. |
| 421 | Misdirected Request | 요청이 응답을 생성할 수 없는 서버로 전달됨. |
| 422 | Unprocessable Content | 요청은 형식은 맞지만 의미상 유효하지 않음(API 검증 오류에 흔함). |
| 423 | Locked | 접근 중인 리소스가 잠겨 있음(WebDAV). |
| 424 | Failed Dependency | 의존하던 이전 요청이 실패해 요청이 실패함(WebDAV). |
| 425 | Too Early | 재전송될 수 있는 요청 처리를 서버가 감수하지 않으려 함. |
| 426 | Upgrade Required | 클라이언트는 Upgrade 헤더에 명시된 다른 프로토콜로 전환해야 함. |
| 428 | Precondition Required | 손실 갱신 방지를 위해 원본이 요청을 조건부로 요구함. |
| 429 | Too Many Requests | 클라이언트가 일정 시간에 너무 많은 요청을 보냄(속도 제한). |
| 431 | Request Header Fields Too Large | 헤더가 서버가 처리하기에 너무 큼. |
| 451 | Unavailable For Legal Reasons | 법적 요구(검열, 삭제)로 리소스를 이용할 수 없음. |
| 500 | Internal Server Error | 일반 오류; 서버가 예기치 못한 상황을 만남. 서버 측 만능 오류. |
| 501 | Not Implemented | 요청을 처리하는 데 필요한 기능을 서버가 지원하지 않음. |
| 502 | Bad Gateway | 게이트웨이 역할의 서버가 업스트림 서버로부터 유효하지 않은 응답을 받음. |
| 503 | Service Unavailable | 서버가 일시적으로 요청을 처리할 수 없음(과부하 또는 점검 중). |
| 504 | Gateway Timeout | 게이트웨이 서버가 업스트림 서버로부터 제때 응답을 받지 못함. |
| 505 | HTTP Version Not Supported | 서버가 요청에 사용된 HTTP 버전을 지원하지 않음. |
| 506 | Variant Also Negotiates | 서버의 콘텐츠 협상 설정 오류. |
| 507 | Insufficient Storage | 요청을 완료하는 데 필요한 표현을 서버가 저장할 수 없음(WebDAV). |
| 508 | Loop Detected | 서버가 요청 처리 중 무한 루프를 감지함(WebDAV). |
| 510 | Not Extended | 서버가 요청을 처리하려면 요청에 추가 확장이 필요함. |
| 511 | Network Authentication Required | 네트워크 접근을 위해 클라이언트가 인증해야 함(캡티브 포털). |
관련 도구