: 클라이언트의 요청을 받았으며 작업을 계속 진행하고 있다. 1xx 계열의 응답은 HTTP/1.1 클라이언트에게만 보낼 수 있으며 응답은 바디 없이 상태 라인, 헤더(생략 가능), 빈 줄로 종료됩니다.
| 상태 코드 | 상태 텍스트 | 의미 | 설명 |
|---|---|---|---|
| 100 | Continue | 계속 | 클라이언트가 요청 헤더에 'Expect: 100-continue'를 보내고 서버가 이를 처리할 수 있을 때 응답 |
| 101 | Switching Protocols | 프로토콜 전환 | 프로토콜을 HTTP 1.1에서 업그레이드할 때 Upgrade 응답 헤더에 표시합니다. 현재는 HTTP 1.1이 최신이므로 사용할 일이 없습니다. |
| 102 | Processing | 처리중 | 서버가 처리하는데 오랜 시간이 예상될 때 타임아웃 방지용으로 전송 |
: 클라이언트가 요청한 동작을 수신하여 이해하였고 승낙하였으며 성공적으로 처리하였다.
| 상태 코드 | 상태 텍스트 | 의미 | 설명 |
|---|---|---|---|
| 200 | OK | 성공 | 서버가 요청을 성공적으로 처리하였다. |
| 201 | Created | 생성됨 | 요청이 처리되어서 새로운 리소스가 생성되었다. 응답 헤더 Location에 새로운 리소스의 절대 URI를 기록합니다. |
| 202 | Accepted | 허용됨 | 요청은 접수하였지만, 처리가 완료되지 않았다. 응답 헤더의 Location, Retry-After를 참고하여 클라이언트는 다시 요청을 보냅니다. |
| 203 | Non-Authoritative Information | 신뢰할 수 없는 정보 | 응답 헤더가 오리지널 서버로부터 제공된 것이 아니다. 프록시 서버가 응답 헤더에 주석을 덧붙인 경우가 하나의 예입니다. |
| 204 | No Content | 콘텐츠 없음 | 처리를 성공하였지만, 클라이언트에게 돌려줄 콘텐츠가 없다. 응답에는 헤더만 있고 바디는 없습니다. DELETE 요청에 대한 응답에 많이 사용됩니다. |
| 205 | Reset Content | 콘텐츠 재설정 | 처리를 성공하였고 브라우저의 화면을 리셋하라. 예를 들어 브라우저가 입력 폼을 보여 주고 있을 때 이 응답 코드를 받으면 브라우저는 모든 입력 항목을 리셋하고 재입력할 수 있는 상태가 됩니다. |
| 206 | Partial Content | 일부 콘텐츠 | 콘텐츠의 일부만을 보낸다. 응답 헤더의 Content-Range에 응답 콘텐츠의 범위를 기록합니다. 예를 들어 1,500 바이트의 리소스 중에서 처음의 500바이트만을 보낼 때 사용할 수 있습니다. |
| 207 | Multi-Status | 다중 상태 | (WebDAV) 처리 결과의 스테이터스가 여러 개이다.207 응답은 성공을 뜻하지만, 각각의 처리 결과가 성공인지는 바디를 봐야 알 수 있습니다. |
: 클라이언트는 요청을 마치기 위해 추가 동작을 취해야 한다.
| 상태 코드 | 상태 텍스트 | 의미 | 설명 |
|---|---|---|---|
| 300 | Multiple | Choices | 여러 선택항목 선택 항목이 여러 개 있다. 지정한 URI에 대해서 콘텐츠 협상을 수행한 결과 서버에서 콘텐츠를 결정하지 못하고 클라이언트에게 복수 개의 링크를 응답할 때 사용합니다. |
| 301 | Moved Permanently | 영구 이동 | 요청한 리소스가 새로운 URI로 영구적으로 이동. 이동할 곳의 새로운 URI는 응답 헤더 Location에 기록합니다. |
| 302 | Found | 임시 이동 | 요청한 리소스가 일시적으로 다른 URI에 위치. 요청한 URI가 없으므로 클라이언트 메소드를 그대로 유지한 채 응답 헤더 Location에 표시된 다른 URI로 요청을 재송신할 필요가 있습니다. 302의 의미를 정확하게 개선해서 307을 정의하였으므로 이 응답 코드의 사용은 권장하지 않습니다. |
| 303 | See Other | 다른 위치 보기 | 다른 URI로 요청하라는 응답. 요청에 대한 처리 결과를 응답 헤더 Location에 표시된 URI에서 GET으로 취득할 수 있습니다. 브라우저의 폼 요청을 POST로 처리하고 그 결과 화면으로 리다이렉트시킬 때 자주 사용하는 응답 코드입니다. |
| 304 | Not Modified | 수정되지 않음 | 마지막 요청 이후 요청한 페이지가 수정되지 않음. If-Modified-Since와 같은 조건부 GET 요청일 때 지정한 리소스가 갱신되지 않았음을 알려 줍니다. 이 응답 코드에는 바디가 없습니다. |
| 305 | Use Proxy | 프록시 사용 | 지정한 리소스에 액세스하려면 프록시를 통해야 한다. 응답 헤더 Location에 프록시의 URI를 기록합니다. |
| 307 | Temporary Redirect | 임시 리다이렉션 | 302와 유사하나 HTTP 메소드가 변경되지 않음 |
: 클라이언트의 요청에 오류가 있는 경우 발생하는 상태 코드입니다.
| 상태 코드 | 상태 텍스트 | 의미 | 설명 |
|---|---|---|---|
| 400 | Bad Request | 잘못된 요청 | 요청의 구문이 잘못됨. 클라이언트가 모르는 4xx 응답 코드도 400과 동일하게 처리 |
| 401 | Unauthorized | 권한 없음 | 리소스 접근 권한 없음. WWW-Authenticate 헤더에 인증 방식 지정 |
| 402 | Payment Required | 결제 필요 | 결제가 필요한 리소스 (실제로는 사용되지 않음) |
| 403 | Forbidden | 금지됨 | 인증과 무관하게 접근이 금지됨 |
| 404 | Not Found | 찾을 수 없음 | 요청한 리소스가 존재하지 않음 |
| 405 | Method Not Allowed | 허용되지 않은 메소드 | 해당 URI가 지정 메소드를 지원하지 않음 |
| 406 | Not Acceptable | 수용할 수 없음 | Accept-* 헤더 관련 처리 불가 |
| 407 | Proxy Authentication Required | 프록시 인증 필요 | 프록시 서버 인증 필요 |
| 408 | Request Timeout | 요청 시간초과 | 서버에서 요청 대기 중 타임아웃 발생 |
| 409 | Conflict | 충돌 | 요청 수행 중 충돌 발생 (예: 중복된 사용자명) |
| 410 | Gone | 사라짐 | 리소스가 영구적으로 삭제됨 |
| 411 | Length Required | 길이 필요 | Content-Length 헤더 필요 |
| 412 | Precondition Failed | 사전 조건 실패 | 조건부 요청의 사전 조건 불일치 |
| 413 | Request Entity Too Large | 요청 객체가 너무 큼 | 요청 메시지가 너무 큼 |
| 414 | Request-URI Too Large | 요청 URI가 너무 김 | URI가 너무 긺 |
| 415 | Unsupported Media Type | 지원되지 않는 미디어 유형 | 서버가 지원하지 않는 미디어 타입 요청 |
| 416 | Range Not Satisfiable | 처리할 수 없는 요청 범위 | 요청한 리소스의 범위가 맞지 않음 |
| 417 | Expectation Failed | 예상 실패 | Expect 헤더를 서버가 이해할 수 없음 |
| 422 | Unprocessable Entity | 처리할 수 없는 엔티티 | (WebDAV) XML 구문은 맞지만 의미상 오류 |
| 423 | Locked | 잠김 | (WebDAV) 리소스가 잠겨있음 |
| 424 | Failed Dependency | 의존 관계로 실패 | (WebDAV) 다른 작업 실패로 인한 실패 |
| 426 | Upgrade Required | 업그레이드 필요 | 프로토콜 업그레이드 필요 |
| 428 | Precondition Required | 사전 조건 필요 | 사전 조건 지정 헤더 필요 |
| 429 | Too Many Requests | 너무 많은 요청 | 주어진 시간 내 너무 많은 요청 발생 |
| 431 | Request Header Fields Too Large | 너무 큰 헤더 | 헤더가 너무 큼 |
| 444 | Connection Closed Without Response | 응답 없이 연결 닫음 | (NGINX) 악의적 요청에 대한 무응답 종료 |
| 451 | Unavailable For Legal Reasons | 법적 사유로 불가 | 법적 문제로 인한 접근 불가 |
: 클라이언트의 요청은 유효하나 서버가 처리에 실패한 경우입니다.
| 상태 코드 | 상태 텍스트 | 의미 | 설명 |
|---|---|---|---|
| 500 | Internal Server Error | 내부 서버 오류 | 서버 에러 발생. 알 수 없는 5xx 코드도 500과 동일 처리 |
| 501 | Not Implemented | 구현되지 않음 | 요청한 메소드가 서버에서 구현되지 않음 |
| 502 | Bad Gateway | 불량 게이트웨이 | 게이트웨이/프록시가 업스트림으로부터 잘못된 응답 수신 |
| 503 | Service Unavailable | 서비스 제공불가 | 서버 과부하나 점검으로 일시적 서비스 중단 |
| 504 | Gateway Timeout | 게이트웨이 시간초과 | 게이트웨이/프록시가 업스트림 응답 대기 중 타임아웃 |
| 505 | HTTP Version Not Supported | HTTP 버전 미지원 | 요청된 HTTP 버전을 서버가 지원하지 않음 |
| 507 | Insufficient Storage | 용량 부족 | (WebDAV) 서버 저장 공간 부족 |
💡 참고:
- 1xx 응답은 HTTP/1.1에서만 사용됩니다.
- 2xx 응답은 요청이 성공적으로 처리되었음을 의미합니다.
- 3xx 응답은 클라이언트가 요청을 완료하기 위해 추가 작업이 필요함을 의미합니다.
- 4xx 에러는 클라이언트 측의 문제로 발생하는 에러입니다.
- 5xx 에러는 서버 측의 문제로 발생하는 에러입니다.
- 위에 명시되지 않은 코드들은 현재 할당되지 않은 상태 코드입니다.