-
2xx(Successful)
- 200 OK
- 201 Created
- 202 Accepted
- 요청이 접수되었으나 처리가 완료되지 않음
- 배치 처리 같은 곳에서 사용
- 예) 요청 접수 후 1시간 뒤에 배치 프로세스가 요청을 처리
- 204 No Content
- 서버가 요청을 성공적으로 수행했지만, 응답 페이로드 본문에 보낼 데이터가 없음
- 문서 편집기에서 아무 내용도 입력하지 않았지만 save가 가능한 경우
3xx(Redirection)
- 302 Found
- 리다이렉트시 요청 메서드가 GET으로 변환, 본문(메시지 바디)이 제거될 수 있음(아마도)
- 307 Temporary Redirect
- 302와 기능은 같음
- HTTP 메서드와 본문 유지
- HTTP 메서드와 메시지 바디를 유지해야할 때 사용
- 304 See Other
PRG(Post/Redirect/Get)
- 302 또는 304를 이용해 중복 상품주문을 방지
304 Not Modified
- 캐시를 목적으로 사용
- 요청하는 정보가 이미 디스크(로컬PC)에 저장되어있을 경우(캐시되어있을 경우) 브라우저는 요청받은 데이터가 변경되었는지 확인하고 변경되지 않았다면 응답 코드로 304를 리턴한다. 즉, 데이터가 변경되었다면 변경된 데이터를 응답으로 보내게 된다.
4xx (Client Error)
- 400 Bad Request
- 클라이언트의 잘못된 요청으로 인한 에러
- 요청 구문, 메시지 등등의 오류
- ex) 요청 파라미터가 잘못되었거나, API 스펙이 맞지 않을 때
- 401 Unauthorized
- 클라이언트가 해당 리소스에 대한 인증이 필요함
- 인증되지 않은 경우(로그인 되지 않은 경우) 에러
- 403 Forbidden
- 404 Not Found
- 요청 리소스를 찾을 수 없음
- 또는 권한이 부족한(인가 받지 않은) 사용자가 리소스에 접근할 때, 해당 리소스를 숨기고 싶을 때
5xx (Server Error)
- 서버 문제로 오류 발생
- 서버의 문제기 때문에 재시도 하면 성공할 수 있음(복구가 되거나 등등)
- 500 Internal Server Error
- 서버 내부 문제로 오류 발생
- 애매하면 500 오류
- 웬만하면 500 에러로 처리하지 않고, 4xx 에러로 처리하는게 좋음