서블릿이 없다면?
서블릿 없이 서버 개발자가 모든 기능을 전부 코딩해야 한다면 다음과 같은 로직들을 전부 구현해야 한다.
1. TCP/IP 대기, 소켓 연결
2. HTTP Request 메세지 받아서 분석
3. 비즈니스 로직 실행
4. DB 처리
5. HTTP Response 메세지 생성
6. TCP/IP를 통해 Response 전달
서블릿은 이러한 작업을 대신 처리하여 개발자의 업무 부담을 덜어준다 (3, 4는 직접 해야한다.)
서블릿 기능을 지원하는 WAS를 '서블릿 컨테이너'라고 칭한다.
서블릿 컨테이너는 서블릿 객체의 생명주기를 관리해주며 서블릿 객체는 싱글톤 패턴으로 관리된다.
서블릿 컨테이너는 동시 요청을 위한 멀티 쓰레드 처리를 지원한다.
WAS와 서블릿의 동작 방식
1. WAS가 HTTP Request를 받는다.
2. 요청 정보를 토대로 HttpServletRequest, HttpServletResponse 객체를 생성하여 서블릿 객체를 호출한다.
3. 서블릿은 비즈니르 로직 수행 후 HttpServletResponse를 적절하게 수정하여 반환한다.
4. WAS는 반환받은 정보를 토대로 HTTP Response를 반환한다.
'김영한님 스프링 강의 정리 > 스프링 MVC' 카테고리의 다른 글
멀티 쓰레드 (요청마다 생성 vs 쓰레드 풀) (0) | 2021.08.15 |
---|---|
Web Server vs WAS(Web Application Server) (0) | 2021.08.15 |