인프런 커뮤니티 질문&답변

재영님의 프로필 이미지

작성한 질문수

스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술

요청 매핑

consumes, produces 속성 질문

해결된 질문

24.01.07 14:39 작성

·

286

1

consumes 속성은 클라이언트가 요청한 헤더를 제한하는 거고, produces 속성은 클라이언트에게 응답할 만들어진 응답의 헤더를 제한하는 것인가요?

답변 1

4

y2gcoder님의 프로필 이미지

2024. 01. 07. 17:54

안녕하세요. 재영님, 공식 서포터즈 y2gcoder입니다.

생각하신 게 대체로 맞습니다! 좀 더 부연설명을 하자면

  • consumes은 Content-Type 과 관련된 속성으로 컨트롤러가 처리할 수 있는 요청 타입을 제한하는 것입니다. 그래서 consumes="application/json" 이라면 해당 애노테이션이 붙은 컨트롤러의 메서드는 content-type이 "application/json" 인 요청만 처리할 수 있습니다.

  • produces 는 응답의 Content-Type과 관련되어있고, 클라이언트의 Accept와 관련이 있습니다. 클라이언트가 보낸 Accept 헤더는 클라이언트 입장에서 자신이 받을 수 있는 content-type을 서버로 전달해준 것이라고 생각할 수 있습니다. produces는 클라이언트 요청 헤더의 accept를 체크해서 맞지 않으면 에러를 뱉습니다. 예를 들어 produces="application/json" 이라면 클라이언트의 요청 헤더 중 accept="application/json"인지를 체크합니다.

감사합니다.

재영님의 프로필 이미지
재영
질문자

2024. 01. 08. 22:54

친절한 답변 감사드립니다 :)

재영님의 프로필 이미지

작성한 질문수

질문하기