사실 나는 지금까지 톰캣의 풀 네임이 아파치 톰캣인줄 알았다ㅎㅎ
이번 글을 통해 Apache와 Tomcat의 차이에 대해서 알아보자.
정적 자원은 Apache에서 처리하고 Tomcat은 WAS로서 동적 자원을 처리한다.
Apache 서버는 오픈소스로 배포되어 마음대로 쓸 수 있는 Http 웹 서버이다.
정적인 데이터들(html, css, 이미지 등)에 대한 클라이언트의 요청만을 처리하기 때문에 Tomcat이 등장한 것이다.
컨테이너, 웹 컨테이너, 서블릿 컨테이너라고도 불린다.
웹 서버와 웹 컨테이너의 결합으로 JSP와 Servlet을 구동하기 위한 서블릿 컨테이너 역할을 수행한다. Apache와는 달리 DB연결, 다른 응용프로그램과 상호 작용을 하는 등 동적인 사용을 할 수 있다. WAS
서블릿
클라이언트의 요청을 받고 요청을 처리하여 결과를 클라이언트에게 제공하는 자바 인터페이스로 세 가지 필수적인 메소드들을 정의한다.
- init()
- service()
- destory()
서블릿 컨테이너
- 서블릿들을 모아 관리
- 새 요청마다 새 스레드 생성
- 작업이 끝난 서블릿 스레드 자동 제거
단순 html, css, 이미지 처리에는 웹 서버만으로 적당하고 빠르고 안정적이다. DB연결, 데이터 조작 등 동적인 데이터를 처리하려면 WAS를 사용해야한다.
톰캣은 톰캣이고! 아파치는 아파치인데 왜 사람 헷갈리게 아파치 톰캣이라고 할까?
그 이유는, 톰캣에서 아파치의 기능을 일부 포함하고 있기 때문이다.
Apache = 정적인 파일 처리하는 웹 서버 (80 포트)
Tomcat = 동적인 기능을 가공하여 HTML 파일로 만들어 클라이언트에게 제공 (8080 포트)
출처
https://velog.io/@kdhyo/Apache-Tomcat-%EB%91%98%EC%9D%B4-%EB%AC%B4%EC%8A%A8-%EC%B0%A8%EC%9D%B4%EC%A7%80
https://100100e.tistory.com/316
https://developer.mozilla.org/en-US/docs/Learn/Common_questions/What_is_a_web_server
https://namu.wiki/w/아파치 HTTP 서버