본문 바로가기

면접준비

ResponseEntity에 대한 설명

  • ResponseEntity란?
  • Spring Framework에서 제공하는 HttpEntity 클래스가 있는데 이는 HTTP 요청 또는 응답에 해당하는 HttpHeader와 HttpBody를 포함하는 클래스.
  • 이 HttpEntity를 상속받아 구현한 클래스가 RequestEntity와 ResponseEntity가 있음.
  • 이 중 ResponseEntity는 HttpStatus, HttpHeaders, HttpBody를 포함.
  • 사용하여 얻을 수 있는 장점
    • 세밀한 HTTP 응답 제어 : 상태코드, 헤더, 본문을 정확하게 제어 가능
    • 명확성 : HTTP응답의 구조를 명확하게 있음.
    • 유연성 : 다양한 상황에 맞는 응답을 쉽게 구성 가능.
  • HttpStatus에는 상태에 대한 코드
  • HttpHeaders에는 요구사항
  • HttpBody에는 데이터 값이 들어있음.
  • HttpStatus의 상태코드는 아래 참조.

1xx : 어떤 정보를 표시할 때 사용

2xx : 성공했을 때 사용하는 코드

  • 200 OK : 요청이 성공적으로 수행되었습니다.
  • 201 Created: 리소스를 생성하는 요청이 성공적으로 수행되었습니다.
  • 202 Accepted: 요청이 접수되었는데, 완전히 처리되진 않았습니다.
  • 204 No Content: 요청이 성공적으로 수행되었으나, 응답할 데이터가 없습니다.

3xx : Redirection(리다이렉션)

  • 301 Moved Permanently: 리소스의 위치가 변경되었음을 알려줍니다. 새로운 리소스의 위치를 함께 반환합니다.
  • 302 Found: 리소스의 위치가 임시로 변경되어서, 임시 주소로 요청을 보냅니다.

4xx : 클라이언트 오류

  • 400 Bad Request: 요청이 잘못되었습니다.
  • 401 Unauthorized: 인증이 필요합니다. 클라이언트에서 인증 정보를 포함해서 보내야 합니다.
  • 403 Forbidden: 권한이 없습니다.
  • 404 Not Found: 요청한 리소스를 찾을 수 없습니다.
  • 405 Method Not Allowed: 이 메서드는 사용할 수 없습니다.

5xx : 서버 오류

  • 500 Internal Server Error: 서버에서 요청을 처리할 수 없습니다.
  • 501 Not Implemented: 해당 기능을 지원하지 않습니다.
  • 502 Bad Gateway: 서버가 게이트웨이 혹은 프록시로부터 잘못된 응답을 받았습니다.
  • 503 Service Unavailable: 서버가 현재 요청을 처리할 수 없습니다. (서버가 과부하일 경우)
  • 504 Gateway Timeout: 서버가 게이트웨이 혹은 프록시로부터 대기 시간동안 응답을 받지 못했습니다.