여러 web client의 요구를 web서버가 감당할수없는 기능을 구조적으로 web서버와 분리하기 위해 만들어진것으로 web application server(WAS) 라고 한다.
WAS는 동적인 데이터를 처리하는 서버, DB 연결, 데이터 조작 등의 처리를 담당한다.
ex) tomcat, weblogic, jeus, jboss..
Web server와 WAS는 사용 목적이 다르다.
Web Server : html, 이미지 요청등 정적 데이터 요청을 처리하는데 빠르다.
WAS : servlet , jsp 등 비즈니스 로직을 수행하는데 적합하다.
그렇다고 WAS가 html,이미지 등의 요청을 처리하지 못한다는 말은 아니다.
다만 처리속도가 web서버에 비해 느리기 때문이다.
이렇게 서로 다른 강점을 합해서 사용하기 위해 web server 와 WAS를 연동하여 서비스를 하는것이 대부분이다.
위에서 아파치와 톰캣에 대해서 알아봤다.
웹서버(아파치)는 정적인 데이터를 처리하는 서버. 이미지나 단순 HTML을 처리하는 서버라면 웹 서버가 적당하며 빠르고 안정적이다.
WAS(톰캣)은 동적인 데이터를 처리하는 서버. DB연결, 데이터 조작등과 같은 처리는 WAS를 활용해야 한다.
즉, 둘은 완전히 다른 개념으로 그들이 맡고있는 역할 역시 확연히 다흐다.
그렇다면 왜 톰캣을 아파치 톰캣이라고 부를까?
톰캣(WAS)에서 편의를 위해 아파치의 기능(웹서비스 데몬, Httpd)을 포함하고 있기 때문이다.
즉, 톰캣이 아파치의 기능 일부를 가져와서 제공해주는 형태이기 때문에 같이 합쳐서 부른다.
톰캣이 아파치의 기능을 지원하지만 아파치의 모든 기능을 제공하는 것은 아니다.
그래서 특수한 상황에선 아파치 톰캣만으로는 구현이 어려워, 따로 아파치 서버를 설치하고 톰캣과 연결하여 사용하는 케이스도 존재한다.
예를 들어 하나의 서버에서 PHP 애플리케이션과 자바 애플리케이션을 함께 사용하거나, Httpd(아파치) 서버를 간단한 로드밸런싱을 위해서 사용해야 하는 경우라면 Httpd를 앞에 두고 톰캣을 연결해서 사용하는 편이다.