WEB

톰캣 너는 도대체...? WAS TOMCAT의 정체 파헤치기!

구름이팡팡 2022. 1. 26. 01:34
728x90

톰캣이란 무엇인가

 

웹 수업을 들으면 갑자기 나타나는 톰캣.. WAS 라고 하는데... 웹 서버라고 하는데....

도대체 넌 누구냐!!!

 

스프링 책을 읽다가.... 한 번 구글링으로 찾아보면 이거구나 하다가도 어떻게 작동되는지 모르겠는 톰캣에 대해 정리해 본다.

 

톰캣!! 고양이!

그래! 톰캣 너는 뭐지??? 나무위키를 검색해본다.

 

아파치 소프트웨어 재단에서 개발하는 Java 기반의 서블릿 컨테이너이자 웹 서버JSP/Spring으로 웹사이트를 구축한다면 톰캣은 거의 반드시 사용된다고 볼 수 있다. Tomcat은 수컷 고양이를 뜻하는 영어 단어이다.

 

 

 

Client -------------------- WAS(Web Application Server) -------------------- Database

             ->Request                     l                          DB Connection

             Response<-                   l

                                  Web Server

                                        +

                                  Web Container -> Thread pool -> Servlet(init()/service()-doGet(),doPost()/destroy())

 

 

 

모바일로 보면 깨져서 사진으로~!

[요약/참고]

WAS = 웹 서버 + 웹 컨테이너(서블릿 컨테이너)

cf) 웹 서버: 웹페이지를 클라이언트에게 전송하는 서버(클라이언트가 브라우저에 URL을 입력하면 웹 서버가 HTTP 프로토콜 - HTTP Response, HTTP Request 을 이용해서 데이터 전송), 정적 컨텐츠(html/css 등) 처리

cf) 서블릿 컨테이너: 서블릿들의 생성, 실행 등을 담당. 서버에 만들어진 서블릿을 관리. 서블릿과 웹서버 통신, 동적 컨텐츠(DB 연동)

 

[서블릿 컨테이너 작동 원리]

웹서버가 HTTP 요청 받음

-> 웹서버가 요청을 서블릿 컨테이너로 보냄

-> 서블릿이 컨테이너에 없다면, 서블릿을 검색해서 컨테이너 주소공간에 로드

->  web.xml을 참조해서 서블릿에 대한 쓰레드 생성(HTTPServletRequest/Response 객체 생성)

-> 컨테이너가 서블릿의 init() 메소드 호출 (처음만)

-> 컨테이너가 서블릿의 service() - doGet()/doPost() 메소드를 호출하여 HTTP 요청 처리 (요청을 읽고 Response에 담는다)

 

-> 서블릿은 컨테이너 주소에 남아있고 다른 HTTP 요청 처리 가능

-> 웹 서버에 전달하고 웹 서버는 동적으로 생성 결과를 올바른 위치에 반환

-> 생성된 쓰레드는 끝, HTTPServletRequest/Response 객체는 제거

 

 

톰캣에는 오로지 서블릿/JSP 및 HTTP 처리 엔진만 들어있으며, 여기에 J2EE를 추가하여 엔터프라이즈 버전으로 배포중인 웹 애플리케이션 서버 Apache TomEE도 있다.

* 출처 : 나무위키

 

 

728x90