아파치? 톰캣?

춘식이 개발로그·2022년 3월 27일
0

아파치(apache)란?

세계에서 가장 많이 쓰는 웹 서버 중 하나이며, 아파치 소프트웨어 재단에서 관리하는 HTTP 웹 서버이다. Apache는 Apache재단에서 만든 HTTP서버로 워낙 다양한 추가기능에, 구축이 쉽다는 이유 때문에 많이 쓰고 있다. 대부분의 중소기업들은 무료이기 때문에 많이 쓰인다.

톰캣(Tomcat)이란?

톰캣은 아파치 소프트웨어 재단의 웹 어플리케이션 서버(WAS, 와스)로서, 자바 서블릿을 실행시키고 JSP코드가 포함되어 있는 웹 페이지를 만들어 준다.

자바 서블렛과 JSP규격의 '참조용 구현'으로 평가되고 있는 톰캣은, 개발자들의 개방적 협력 작업의 산물로 바이너리 버전과 소스코드 버전 둘 모두를 아파치 웹 사이트에서 얻을 수 있다.
즉, 톰캣은 웹 서버에서 넘어온 동적인 페이지를 읽어들여 프로그램을 실행하고 그 결과를 다시 html로 재구성하여 아파치에게 되돌려 준다.
톰캣은 자체적으로 보유하고 있는 내부 웹 서버와 함께 독립적으로 사용될 수도 있지만 아파치나 넷스케이프 엔터프라이즈 서버, IIS등 다른 웹 서버와 함께 사용될 수도 있다. 톰캣을 실행시키기 위해서는 JRE 1.1 이상에 부합되는 자바 런타임 환경이 필요하다.

아파치와 톰캣의 차이점.

아파치 (Apache)

아파치 소프트웨어 재단의 오픈소스 프로젝트이다. 일명 웹서버로 불리며, 클라이언트 요청이 왔을때만 응답하는 정적 웹페이지에 사용된다.

  • 웹서버는 80번포트로 클라이언트 요청(POST, GET, DELETE)이 왔을때만 응답함.
  • 정적인 데이터만 처리한다.(HTML, CSS, 이미지)

톰캣 (Tomcat)

동적인 웹을 만들기 위한 웹 컨테이너, 서블릿 컨테이너 라고 불리며, 웹 서버에서 정적으로 처리해야할 데이터를 제외한 JSP, ASP, PHP 등은 웹 컨테이너(톰캣)에게 전달한다.

  • JSP, 서블릿처리, HTTP 요청 수신 및 응답
  • 아파치만 쓰면 정적인 웹페이지만 처리하므로 처리속도가 매우 빠르고 안정적이다.

하지만 톰캣(WAS)를 쓰면 데이터 처리가 가능하다. DB연결, 데이터 조작, 다른 응용프로그램과 상호 작용이 가능하다. 톰캣은 8080포트로 처리한다.

아파치톰캣(Apache+Tomcat)

톰캣이 아파치의 기능 일부를 가져와서 제공해주는 형태이기 때문에 같이 합쳐서 부른다. WAS(Web Application Server)

그림을 통해서 아파치와 톰캣의 차이를 알 수 있다. 톰캣은 일반적으로 WAS(Web)라고 불리며, 톰캣은 아파치와 합쳐서 '아파치톰캣' 이라고 부른다.

  • 아파치만 사용하면 정적인 웹페이지만 처리 가능
  • 톰캣만 사용하면 동적인 웹페이지 처리가 가능하지만 아파치에서 필요한 기능을 못가져옴. 또한 여러 사용자가 요청할시에 톰캣에 과부하가 걸림.
  • 아파치와 톰캣을 같이 쓰면 아파치는 정적인 데이터만 처리하고, JSP 처리는 Web Container(톰캣의 일부)로 보내주어 분산처리 할 수 있다.

아파치 : 80포트
톰캣 : 8080포트
(실제로는 80포트로 다 처리하므로, 8080포트는 아파치가 알아서 보내줌. 8080포트를 다루거나 보려면 리눅스단에서 처리하거나 수동적으로 포트 처리할 때 빼고는 보기 힘듬)

요약.

  • 아파치(apache)는 웹 서버이고 무료이다.
  • 톰캣(Tomcat)은 웹 애플리케이션 서버이고 자바 서블릿을 실행시키고 JSP코드가 포함되어 있는 웹 페이지를 만들어줌.
  • 아파치는 정적인 웹 페이지만 처리 가능하고 톰캣은 동적인 웹 페이지 처리가 가능하다.

참고 글

0개의 댓글