상태코드는 1XX번대, 2XX번대, 3XX번대, 4XX번대, 5XX번대로 나눠져 있다.
이중 100번대 코드는 정상작동중임을 알리는 코드이며 거의 사용하지 않는다.
주요 상태 코드는 아래오 같다.
- 200번대 (정상)
그룹 | 코드 | 상수 | 설명 |
성공 응답 | 200 | OK | 요청이 정상적으로 완료됨 |
201 | Created | 요청이 성공적이었으며 그 결과로 새로운 리소스가 생성됨. 응답 HTTP메시지에 location: {리소스 생성 위치} 를 헤더에 추가한다. |
|
202 | Accepted | 요청을 정상적으로 수신했으나 당장 실행할수 없음. 예) 접수 뒤 한시간뒤 프로세스가 실행되도록 설계됨 |
|
204 | No Content | 요청을 성공적으로 수행했으나, 응답 페이로드에 담을 데이터가 없음 |
-300번대 (리다이렉션 - 요청을 완료하기 위해 클라이언트의 추가 작업 필요)
그룹 | 코드 | 상수 | 설명 |
리다이렉션 메세지 |
300 | Multiple Choice | 요청에 대해 하나 이상의 응답이 가능하다는 의미입니다. 거의 안씀 |
304 | Not Modified | 캐시를 목적으로 사용. 클라이언트에게 리소스가 변경되지 않았음을 알린다. 클라이언트는 캐시 재사용. 메시지 바디를 포함하면 안된다. 조건부 GET/ HEAD 요청시 사용. |
|
301 | Moved Permanently | 요청 리소스가 영구적으로 변경됨. 응답 HTTP 메시지에 location: {변경된 위치} 를 추가한다. 브라우져에서 알아서 변경된 위치로 리다이렉션 실행. 리다이렉션 실행시 GET요청으로 변하거나 본문이 제거될수도 있음 |
|
302 | Fount | 요청 리소스가 일시적으로 변경됨. 301과 기능이 같음 |
|
303 | See Other | 요청 리소스가 일시적으로 변경됨. 302와 기능은 같음 리다이렉션시 반드시 요청 메서드가 GET으로 바뀜(본문 유지). |
|
307 | Temporary Redirect | 요청 리소스가 일시적으로 변경됨. 302와 기능은 같음 리다렉션시 요청 메서드와 본문이 유지된다. |
|
308 | Permanent Redirect | 요청 리소스가 영구적으로 변경됨. 301과 기능이 같음. 리다렉션시 요청 메서드와 본문이 유지됨. |
PRG : POST/REDIRECTION/GET (일시적인 리다이렉션)
post 요청이 300번대 응답의 리다이렉션을 거쳐 get요청으로 변하는 현상.
상품 주문 후 페이지 이동같은 로직에 사용됨.
- 400번대 (클라이언트 오류)
그룹 | 코드 | 상수 | 설명 |
클라이언트 오류 응답 | 400 | Bad Request | 이 응답은 잘못된 문법으로 인해 서버가 요청을 이해할 수 없다는 의미. 요청 메서드나 파라미터가 맞지 않을때 발생. |
401 | Unauthorized | 인증되지 않음. 예) 로그인이 안됨 |
|
403 | Forbidden | 클라이언트가 콘텐츠에 접근할 권리가 없음. 예) 일반 사용자가 관리자 페이지 접근 |
|
404 | Not Fount | 서버는 요청 받은 리소스를 찾을 수 없다는 의미. |
-500번대 (서버 오류)
그룹 | 코드 | 상수 | 설명 |
서버 오류 응답 | 500 | Internal Server Error | 처리할 수 없는 내부 오류가 발생했다는 의미 |
501 | Not Implemented | 요청 메서드는 서버가 지원하지 않거나 처리할 수 없다는 의미 | |
503 | Service Unavailable | 일시적으로 서비스를 이용할수 없다는 의미. Retry-After 헤더 필드로 얼마뒤에 복구되는지 보낼 수도 있음 |