클라이언트에서 HTTP 요청이 오면, 서버는 해당 요청을 처리해 응답을 반환한다.
HTTP 요청은 어디에서 어떻게 처리될까?
요청을 받고 처리하는 전체 과정은 다음과 같다.

이것만 봐서는 잘 모르겠다 .. 차근차근 알아보자!
Servlet(서블릿)
서블릿은 요청과 응답을 처리하는 자바 클래스이다.
원칙적으로는 HTTP뿐만 아니라 SMTP 등 다양한 요청·응답 기반 프로토콜도 지원할 수 있다.
하지만 대부분(Tomcat, Jetty 등)이 HTTP 통신을 처리하는 용도로 Servlet을 사용한다.
Dispatcher Servlet
HTTP 요청 및 응답을 위한 서블릿은 DispatcherServlet을 사용하게 된다.

Dispatcher Servlet은 스프링 MVC 요청 처리의 프론트 컨트롤러 역할을 한다.
따라서 모든 HTTP 요청은 Dispatcher Servlet으로 향한다.
Servlet Container(서블릿 컨테이너)
서블릿 컨테이너는 서블릿들을 관리·실행하고 요청을 전달해주는 엔진을 의미한다.
즉, 서블릿 사양(Servlet API)을 구현한 서버 프로그램을 의미한다.
(※ Servlet API: Servlet, Servlet Context, Servlet Request, Servlet Response,)
서블릿 컨테이너는 대표적으로 Tomcat, Jetty, Jeus 등이 존재한다!
Servlet Container의 역할
서블릿 컨테이너가 하는 역할을 순서에 따라 확인해보자.
1. 서블릿 컨테이너는 서블릿 인스턴스를 생성·초기화하는 역할을 한다.
서블릿 컨테이너의 Context 내 Wrapper가 위 역할을 담당한다.
서블릿 컨테이너는 서블릿(Dispatcher Servlet 등)의 인스턴스를 스프링 콘텍스트(Spring Context) 내에 미리 생성해둔다.
또한 Wrapper는 Url 패턴과 서블릿 인스턴스를 매핑해주는 테이블을 가지고 있다.
예를 들어, "/" (HTTP 요청) 패턴은 Dispatcher Servlet 인스턴스와 매핑되어있다.
(나중에 실제로 "/" 패턴이 들어왔을 때, Context 내 Mapper가 Dispatcher 인스턴스를 매핑시켜준다.)
이후 init()을 통해 서블릿 인스턴스의 초기화를 진행한다.
2. Url에 맞게 서블릿을 실행시켜주는 역할을 한다.
- "/" 패턴이 들어오게 되면 서블릿 컨테이너의 Context 내 Mapper는 Dispatcher Servlet의 인스턴스로 매핑하게 된다.
- Dispatcher Servlet(인스턴스)은 차례대로 doService() → doDispatch()를 실행한다.
3. HandlerMapping과 HandlerAdapter를 통해 컨트롤러와 연결해주는 역할을 한다.
doDispatch()는 getHandler() → getHandlerAdapter() → ha.handle()를 차례대로 실행한다.
- getHandler(): HandlerMapping을 통해 요청을 처리할 컨트롤러를 찾는다.
- getHandlerAdapter(): 선택된 Handler를 실행할 수 있는 어댑터를 결정한다.
- ha.handle(): 실제 컨트롤러 메소드를 호출한다.
→ 이후 ModelAndView에 뷰와 모델 정보를 넣어 다음 단계(뷰 렌더링)로 넘긴다!
4. 컨트롤러에 맞는 뷰가 호출되면 렌더링을 하고, 응답을 반환해주는 역할을 한다.
processDispatchResult()는 render()를 실행하여,
- 뷰를 렌더링하고(by ViewResolver)
- Response를 전송한다.
마무리
서블릿 컨테이너는 HTTP 요청을 처리하는 엔진 역할을 담당한다.
서버가 실행되면 필요한 설정을 로드하고 초기화한 뒤, 클라이언트로부터 들어오는 HTTP 요청을 대기한다.
이후 요청이 들어오면 알맞은 서블릿에 전달하여 응답을 반환하게 된다!
Servlet과 Servlet Container를 자세히 알면.. HTTP 요청과 응답의 흐름을 더 잘 이해하게 될 것이다😊
👏
'Spring' 카테고리의 다른 글
| [Spring] JDBC / Spring JDBC (0) | 2026.01.25 |
|---|---|
| [Spring] 스프링 시큐리티(Spring Security) (0) | 2025.10.17 |