Http Status Code :
。Spring에서는 HttpStatus객체( org.springframework.http.HttpStatus )를 설정하여 Controller Method에 @ResponseStatus로 설정하여 클라이언트에게 return 가능
。클라이언트에게 응답 시 Status Code : Status Phrase가 함께 제공
1XX : Informational ( 정보제공 )
。요청 수신 후 처리중에 있음
▶ 현재 클라이언트의 요청까지는 처리되었으므로 계속 진행을 지시
2XX : Success ( 성공 )
。클라이언트의 요청이 서버에서 성공적으로 처리
200 : OK : 요청이 정상적으로 수행
201 : CREATED : POST로 요청이 성공적으로 수행되어 새로운 Resource가 생성됨.
204 : No Content : 클라이언트의 요청을 처리했으나, 응답할 데이터가 존재하지 않음.
3XX : Redirection ( 리디렉션 )
。완전한 처리를 위해 추가 동작이 필요한 경우
ex) 요청한 URL 상의 웹문서가 이동했으므로 해당 주소로 다시 시도하도록 요청
301 : MOVED_PERMANENTLY :
。 Request한 객체가 영원히 이동됨
。객체의 새로운 URL은 HTTP Response Message의 Location 헤더에 지시됨
4XX : Client Error ( 클라이언트 에러 )
。요청한 내용에 오류가 존재하는 경우
400 : BAD_REQUEST :
。요청 자체가 잘못된 경우
。Client의 Request 구문이 문법상 오류 발생 또는 Validation Error이 발생한 경우
▶ EX) 요청 메시지 내용이 잘못된 경우
401 : UNAUTHORIZED :
。인증을 시도했지만 유효한 자격 증명이 없기 때문에 HTTP Request가 적용되지 않았음
▶ Authetication에 실패한 경우
403 : FORBIDDEN :
。인증은 되었으나 클라이언트가 요청한 Resource에 대해 접근권한이 없음을 지시
▶ Authorization에 실패한 경우
404 : NOT_FOUND :
。HTTP Server에서 요청한 Resource를 발견하지 못한 경우
405 : METHOD NOT ALLOWED
。요청의 HTTP 메소드가 일치하지않음.
5XX : Server Error ( 서버 에러 )
。요청에는 문제가 없으나, 서버에서 문제가 발생한 경우.
ex) 서버 부하 / DB 처리과정 오류 / Server에서 Exception이 발생한 경우.
500 : INTERNAL_SERVER_ERROR :
。Server 내부에서 오류발생 또는 Exception 발생
▶ 백엔드 개발자의 실수로 발생하는 부분으로 가장 신경써야하는 상태코드
503 : SERVICE_UNAVAILABLE :
。헬스체크가 되지않아 서버가 다운된 상태
505 : HTTP Version Not Supported :
。HTTP Request의 HTTP Protocol Version을 HTTP Server가 지원하지 않는 경우