0. 시작하기 전
: 아파치와 톰캣의 차이점이 무엇인가? 웹서버와 WAS의 차이는 무엇인가?
이 두가지 질문에 대해 완벽히 이해하지 못하여 검색했을 것이라 생각한다.
물론 필자도 이해하지 못하였기 때문에 정리해두려 한다.
1. 아파치란 무엇인가
: 아파치는 WebServer 다. 이것만 기억하면 된다.
그럼 WebServer는 뭔데?
웹서버는 웹 브라우저로부터 HTTP 요청을 받아 정적인 컨텐츠를 전달하며,
간단한 홈페이지 등 정적으로 보여주는 목적인 경우 주로사용한다.
(정적파일 : html, javascript, css, image 물리적인 파일 등)
2. 아파치톰캣이란 무엇인가
: 아파치톰캣은 WebServer + Web Container(Servlet Container)
Web Container 가 추가된 것이 아파치 톰캣이다.
동적인 결과가 필요할 때 사용된다. (jsp 등)
웹 컨테이너의 역할
- 웹서버를 통해 필요한 페이지를 받는다.
- Container 가 web.xml(배포서술자=DD)를 참조하여 스레드 생성하여 요청 및 응답 객체를 생성하여 스레드에게
전달 (HttpServletrequest, HttpServletResponse)
- 스레드 및 응답객체 생성완료 시, Container 는 사용자의 요청에 맞는 Servlet을 호출한다.
- 스레드가 요청에 따라 doGet(), doPost()를 호출한다.
- 요청에 의해 생성된, doGet(), doPost() 메소드는 생성된 동적 페이지를 Response에 실어 Container에 전달.
- Container는 Response 객체를 HttpResponse 형태로 전환하여 웹서버에게 전달하고 생성된 스레드를 종료,
요청 및 응답 객체를 소멸
3. 아파치와 아파치톰캣의 차이는 무엇인가
: 두가지의 차이점은 위 내용으로 충분히 설명한 것 같다.
그래도 무언가 2%부족한 느낌이라면,
아파치와, 아파치톰캣 두가지 명칭에 대한 혼선일 것 같다.
* 아파치는 순수 Apache 웹서버만 존재하고,
우리가 말하는 톰캣은 아파치톰캣인 것이다. (Tomcat = Apache Tomcat)
톰캣자체에 아파치 역할을 하는 웹서버가 존재하는것이다.
여기서 또 한가지 의문이 들 것이다.
Q) 그러면 톰캣만 쓰지 뭣하러 아파치 톰캣을 따로 쓰나요?
1. 효율적인 자원활용
: 아파치를 분리해서 사용한다면, 정적인 요청은 웹서버에서 바로 Response 할 수 있으므로 부하를 줄일 수 있다.
2. 로드벨런싱
: 많은 트래픽이 발생하는 조건인 경우, 여러 WAS로 로드벨런싱에 유리.
'Spring' 카테고리의 다른 글
[Spring] web.xml 정리 (0) | 2021.11.12 |
---|---|
[Spring] Spring Framework 구동순서 완벽정리 (1) | 2021.11.04 |
[Spring Framework] 1. Spring Framework 구조 (0) | 2021.05.18 |
[Spring MVC] Java 네이버 로그인 연동 완벽정리(네아로) (7) | 2018.04.18 |
[Spring] Ajax란 무엇인가, 사용법 (1) | 2018.04.09 |