17-R6. DispatcherServlet → Browser: HTTP Response (JSON)
JSON 직렬화와 응답 본문 작성이 끝나면, 서블릿 컨테이너가 그 바이트를 HTTP 응답으로 브라우저에 전달합니다.
이번 단계의 역할
REST 응답이 최종적으로 클라이언트에 전달되는 마지막 단계입니다.
호출 흐름 요약
- 메시지 컨버터가 JSON을 응답 스트림에 기록합니다.
- DispatcherServlet은 뷰 렌더링 없이 요청을 종료합니다.
- 컨테이너가 응답을 네트워크로 전송합니다.
- 브라우저 또는 API 클라이언트가 JSON 응답을 받습니다.
호출 흐름 다이어그램
sequenceDiagram
participant DS as DispatcherServlet
participant Container as Servlet Container
participant Browser
DS-->>Container: response body ready
Container-->>Browser: HTTP Response (JSON)
핵심 코드
// AbstractJackson2HttpMessageConverter.java
objectWriter.writeValue(generator, value);
generator.flush();
// RequestResponseBodyMethodProcessor.java
mavContainer.setRequestHandled(true);
코드 해설
Spring MVC 관점에서는 이미 응답이 완성된 상태이고, 남은 일은 컨테이너가 그 바이트를 전송하는 것뿐입니다.
설계 의도
프레임워크는 응답 생성에 집중하고, 실제 전송은 서블릿 컨테이너가 맡는 표준 역할 분리를 따르는 구조입니다.
다음 단계 연결
이 문서는 Java Web 전체 요청-응답 흐름의 마지막 단계입니다.
← 이전: 17-R5. HttpMessageConverter → DispatcherServlet | 목록으로 돌아가기