본문 바로가기
Spring

아파치, 톰캣의 차이

by 유혁. 2021. 10. 25.

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로 로드벨런싱에 유리.