ResponseEntity?
- ResponseEntity란 HttpEntity를 상속받고, 결과 데이터와 HTTP 상태코드를 직접 제어할 수 있는 클래스이다.
- ResponseEntity에는 사용자의 HttpRequest에 대한 응답데이터가 포함된다.
또한 HTTP 아키텍처 형태에 맞게 Response를 보내주는 것에도 의미가 있다.- ResponseEntity 클래스를 사용하면 결과값, 상태코드, 헤더값을 모두 프론트에 넘겨줄 수 있고 에러코드 또한 섬세하게 설정해서 보내줄 수 있다는 장점이 있다.
ResponseEntity의 구조
- HttpEntity를 상속받고 사용자의 응답데이터가 포함된 클래스이기 때문에
HttpStatus
,HttpHeaders
,HttpBody
를 포함한다.
HttpHeader
: 요청,응답에 대한 요구사항HttpBody
: 요청,응답에 대한 내용ResponseHeader
: 웹 서버가 웹브라우저에 응답하는 메시지ResponseBody
: 데이터 값
ResponseHeader의 구조
: 웹 브라우저가 요청한 메시지에 대해서 status, 즉 성공했는지 (202, 400) 여부와 메시지 그리고 요청한 응답값들이 body에 담겨있다.
- Location : 301, 302 상태코드일 떄만 볼 수 있는 헤더로 서버의 응답이 다른 곳에 있다고 알려주면서 해당 위치(URI)를 지정한다.
- Server : 웹서버의 종류 ex) nginx
- Age : max-age 시간내에서 얼마나 흘렀는지 초 단위로 알려주는 값
- Referrer-policy : 서버 referrer 정책을 알려주는 값 ex) origin, no-referrer, unsafe-url
- WWW-Authenticate : 사용자 인증이 필요한 자원을 요구할 시, 서버가 제공하는 인증 방식
- Proxy-Authenticate : 요청한 서버가 프록시 서버인 경우 유저 인증을 위한 값
- 1xx : informational (100~ 109)
- 2xx : Successes (200~ 206)
- 3xx : Redirection (300~ 305)
- 4xx : Client ERROR (400~ 415)
- 5xx : Server ERROR (500~ 505)
출처