개요
웹 개발을 하면서 200, 301, 404, 503 등 자주 만났던 상태 코드들에 대해 알아보자.
- Information 1xx : 정보 응답
- Successful 2xx : 성공 응답
- Redirection 3xx : 리다이렉션 메시지
- Client Error 4xx : 클라이언트 에러 응답
- Server Error 5xx : 서버 에러 응답
Information 1xx 상태 코드들은 잘 사용하지 않기 때문에 생략하도록 한다.
Successful 2xx (성공 응답)
200 OK
201 Created
- 요청이 성공해서 새로운 리소스 생성
- ex) 회원가입
202 Accepted
- 요청이 성공했지만 처리 중이거나 처리가 완료되지 않음
- ex) 1시간 후 게시글 삭제 예약
204 No Content
- 요청이 성공했지만 응답 리소스가 없음
- ex) 구글 시트 수정 시 저장
Redirection 3xx (리다이렉션 메세지)
- 영구적 리다이렉션
- URI가 영구적으로 변경
- 301 Moved Permanently, 308 Permanent Redirect
- ex) 로그인 요청(/login) -> 성공 후 홈 화면(/)
- 일시적 리다이렉션
- URI가 일시적으로 변경
- 302 Found, 307 Temporary Redirect, 303 See Other
- ex) 주문 화면에서 결제 후(/orders) -> 주문 내역 화면(/orders/3)
- 기타 리다이렉션
- 캐시를 사용
301 Moved Permanently
- 리다이렉트시 요청 메서드가 GET으로 변하고, 본문이 제거될 수 있음
302 Found
- 리다이렉트시 요청 메서드가 GET으로 변하고, 본문이 제거될 수 있음
303 See Other
304 Not Modified
307 Temporary Redirect
- 리아디렉트시 요청 메서드와 본문이 유지
- 요청 메서드를 변경하면 안됨
308 Permanent Redirect
4xx (클라이언트 에러 응답)
400 Bad Request
- 클라이언트가 잘못된 요청을 해서 서버가 요청을 처리할 수 없음
- ex) 요청 파라미터가 잘못되거나, API 스펙이 맞지 않음
401 Unauthorized
- 클라이언트가 해당 리소스에 대한 인증이 필요함
- 오류 발생시 응답에 WWW-Authenticate 헤더와 함께 인증 방법을 설명
- ex) 비로그인, 다른 사용자의 게시글 수정 요청
403 Forbidden
- 서버가 요청을 이해했지만 승인을 거부함
- ex) 사용자가 관리자 페이지에 접근하는 경우
404 Not Found
5xx (서버 에러 응답)
500 Internal Server Error
503 Service Unavailable
- 서비스 이용 불가
- 서버가 일시적인 과부하 또는 예정된 작업으로 잠시 요청을 처리할 수 없음
참고자료