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

gelab님의 프로필 이미지
gelab

작성한 질문수

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

HTTP 메시지 컨버터가 작동 과정

해결된 질문

작성

·

422

·

수정됨

0

HTTP 메시지 컨버터가 작동되었다는 건 HTTP 바디에 요청 혹은 응답이 이루어진다는 것인데

@ResponseBody
public String hello() {
    return "ok"
}

그러면 이런 코드가 있을 때 메시지 컨버터가 사용이 됩니다.

  1. MVC구조에 따라 위 코드 수행 과정이 제가 이해한 게 맞나요?

    1. HTTP 요청이 들어오면 디스패처 서블릿에서 핸들러 매핑으로 적절한 핸들러를 찾고 그 핸들러를 처리할 핸들러 어댑터를 찾습니다.

    2. 찾은 핸들러 어댑터를 호출하고 핸들러 어댑터에서 적절한 아규먼트 리졸버를 찾아 호출해 보내줄 파라미터 데이터를 생성합니다. (여기선 파라미터가 없으므로 생성x)

    3. 이제 핸들러(위 코드)를 호출하고 반환되면서 리턴밸류핸들러가 실행됩니다.

    4. @ResponseBody가 있으므로 HTTP 메시지 컨버터를 실행합니다.

     

    여기까지가 제가 이해한게 맞나요?

     

  2. 이제 HTTP 메시지 컨버터가 HTTP 바디에 값을 직접 넣어주어 화면을 띄웠을 때 ok라는 문자가 그대로 보이게 되는 것으로 알고 있습니다. 이 과정을 더 상세하게 알고 싶습니다.

    HTTP 메시지 컨버터에서 HTTP 바디에 값을 직접 넣어주고 모든 작업이 끝나게 되는건가요?

    아니면 HTTP 메시지 컨버터에서 또 어떤 값을 리턴해주어 계속 진행이 되는건가요?

     

    후자가 맞다면 HTTP 메시지 컨버터는 어떤 것을 리턴밸류핸들러에 리턴해주는 것이며

    리턴밸류핸들러는 어떤 것을 핸들러어댑터에 리턴해주는 지 궁금합니다.

답변 1

0

김영한님의 프로필 이미지
김영한
지식공유자

안녕하세요. gelab님

  1. 이해한 내용이 맞습니다.

  2. HTTP 메시지 컨버터가 내부에서 HttpServletResponse에 값을 넣고 끝나게 됩니다. 그리고 별도의 View를 지정하지 않고 리턴하기 때문에 결과적으로 뷰가 선택되지 않습니다.

감사합니다.

gelab님의 프로필 이미지
gelab

작성한 질문수

질문하기