Http Status Code :
。Spring에서는HttpStatus객체(org.springframework.http.HttpStatus)를 설정하여Controller Method에@ResponseStatus로 설정하여클라이언트에게 return 가능
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가 지원하지 않는 경우