Apache vs Tomcat vs WAS

유영·2024년 10월 22일
0

Server

목록 보기
3/7

WEB Server

웹 서버는 작성된 html페이지 등을 네트워크 망에 종속되지 않고, 웹서비스를 할 수 있도록 어플리케이션으로, 클라이언트에게 요청을 받으면 해당 요청을 판단하여 정적인 자원은 WAS를 거치지 않고 바로 응답해주고,
동적인 자원은 WAS에 요청을 전달하여 WAS에서 받은 결과를 클라이언트에게 응답한다.

WAS (Web Application Server)

WAS는 웹 서버와 웹 컨테이너로 웹 상에서 사용하는 컴포넌트를 올려놓고 사용하게 되는 서버이다.
인터넷 상에서 HTTP를 통해 사용자 컴퓨터나 장치에 애플리케이션을 수행해주는 미들웨어(소프트웨어 엔진)이다.
웹 애플리케이션 서버는 동적 서버 콘텐츠를 수행하는 것으로 일반적인 웹 서버와 구별 되며, 주로 데이터베이스 서버와 같이 수행된다.
여기서 웹 컨테이너란, JSP와 Servlet을 실행시킬 수 있는 소프트웨어를 웹 컨테이너라고 한다.

WAS의 기본 기능

프로그램 실행 환경과 데이터베이스 접속 기능 제공
여러 개의 트랜잭션(쪼갤 수 없는 업무 처리의 최소 단위) 관리
업무 처리하는 비즈니스 로직 수행
Web Service 플랫폼으로서의 역할

WEB 과 WAS의 차이점

1. Web Container 유무

Web Container의 유무로 WEB와 WAS를 나눌 수 있다.
Web Container가 있으면 WAS로 분류된다.

2. 목적이 다르다.

WEB(웹서버)는 HTML 문서같은 정적인 데이터를 처리하는 서버이다. 이미지나 단순 html 파일과 같은 리소스를 제공하는 서버를 웹 서버를 통하면 WAS를 이용하는 것보다 안정적이다.
WAS는 동적인 데이터를 처리하는 서버이다. DB와 연결되어 데이터를 주고 받거나 프로그램으로 데이터 조작이 필요한 경우에 WAS를 활용해야 한다.

우리가 만드는 웹 페이지는 정적 컨텐츠와 동적 컨텐츠를 함께 노출하게 한다. WAS가 정적 데이터를 처리하게 되면, 동적 컨텐츠의 처리가 지연될 것이고, 이로 인한 페이지 노출시간이 늘어나게 된다. WAS는 동적 처리에 최적화 되어 있는 서비스이기 때문에 처리 속도를 위해, 정적처리는 웹서버에서 처리를 하고, 동적 컨텐츠는 WAS에서 처리하게 된다.

사용자가 클라이언트(브라우저)에 요청을 하게 되면 이를 웹서버에서 반응하여 WAS의 처리를 거쳐 웹 페이지로 다시 웹서버에서 클라이언트(브라우저)에 응답 메시지를 주는 것이다.

추가적으로 JSP를 배울 때, 대체적으로 Apache와 Tomcat을 사용한다. ASP를 구동하기 위해서는 IIS를 사용한다. ASP의 환경이 MS계열 서비스라면 WAS의 기능을 담당하는 부분이 있어 별도의 WAS가 필요하지 않다.

WAS가 Web server를 포함하고 있는데 왜 굳이 Web Server를 따로 구별하는 걸까요?

그 이유는 서버의 부하를 방지하기 위해서 입니다.

  • Nginx는 대용량 트래픽을 처리하기 위해 가벼움과 높은 성능을 목표로 하는 경량 서버

아파치(Apache)란?

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

웹서버 = 80번 포트로 클라이언트 요청(POST,GET,DELETE)이 왔을때만 응답함.
정적인 데이터만 처리한다. (HTML,CSS,이미지 등)
http 웹 서버는 http 요청을 처리할 수 있는 웹서버이다. 아파치 http 서버는 http요청을 처리하는 웹 서버이다.
클라이언트가 GET, POST, DELETE 등의 메소드를 이용해 요청을 하면 이 프로그램이 어떤 결과를 돌려주는 기능을 한다.

출처 : https://velog.io/@remon/%EA%B0%9C%EB%B0%9C-%EA%B8%B0%EB%B3%B8-%EC%A7%80%EC%8B%9D-WEB%EC%95%84%ED%8C%8C%EC%B9%98%EA%B3%BC-WAS%ED%86%B0%EC%BA%A3-%EC%B0%A8%EC%9D%B4

0개의 댓글