Tomcat(톰캣)의 내부 구조 이해 + Spring
웹 애플리케이션 서버(WAS) 는 웹 애플리케이션을 서비스하는 서버를 말한다.
[ (Web Application Server) 톰캣을 WAS라 부른다. ]
여기서 애플리케이션은 프로그램을 뜻하는 용어로서
서버에 프로그램을 설치하고 클라이언트가 서버에 있는 프로그램을 사용할 수 있게 해주는 역할을 한다.
즉 서버에 프로그램을 설치를 해놓고 클라이언트가 필요할 때 서버에 있는 프로그램을 원격호출해서 사용할 수 있게 해준다.
클라이언트에게 요청이 왔을 때 톰캣에서 내부 과정
클라이언트가 브라우저에서 요청을 하면 8080포트로 요청이 간다.
(8080포트로 가정해서 설명)
요청이 오면 톰캣 내부에 있던 Thread(스레드)가 요청을 처리한다.
서버 안에 있는 서비스에서 Protocol 종류에 따라서 처리할 Connector가 정해진다.
HTTP1.1로 처리가 됬다고 가정하고 처리하면 Engine(Catalina)로 요청한다.
Engine안에는 Host가 있는데 도메인 주소에 따라서 요청을 받는다.
클라이언트에게 받은 주소는 http:www.ljm.co.kr/ch2/hello
Host 내부에는 context가 있는데 이것이 하나의 웹 애플리케이션이다.
(즉 내가 작업하고 있는 sts에 프로젝트 하나를 의미한다.)
그리고 context 안에는 서블릿이 존재한다.
서블릿(Servlet) 의 뜻은 작다라는 뜻인데
여기서는 작은 서버 프로그램을 뜻한다.
위의 사진을 통해 알 수 있는 것은
context안에 있는 서블릿들은
ch2 프로젝트 안에 있는 hello 클래스를 말하고
즉 클래스는 각각의 작은 서버 프로그램을 뜻한다.
이전에는 프로젝트 안에 있는 web.xml에서 서블릿을 등록하고 URL을 연결 했다면
Spring에서 클래스 위에 @Controller를 이용해서 원격 호출 가능한 프로그램으로 등록하고
@RequestMapping으로 메서드와 URL을 연결할 수 있다.
강의를 시청하면서 복습하는 생각으로 정리했지만
혹시라도 틀린 내용이 있다면 댓글로 알려주면 감사하겠습니다.