Web Server, WAS 차이점
반응형

전체 동작 과정

 

Web Server(웹 서버)

  • HTTP를 이용한 요청/응답을 처리한다.
  • 웹 상의 정적 콘텐츠(CSS, Javascript, Image)를 처리한다.
  • WEB-WAS-DB 3계층 구조를 실무에서 주로 활용한다.

  • 주요 제품 : Apache 웹 서버, IIS 웹 서버, Google Web Server, Nginx 등

 

1. 정적 컨텐츠 요청했니? 내가 줄게! —> 정적컨텐츠(html, css, image 등 응답)

2. 동적 컨텐츠 요청이구나.. 웹 서버에서는 처리 못하겠네 WAS에게 부탁하자! —> WAS에 부탁해서 처리된 컨텐츠를 받아 그것을 다시 클라이언트에게 응답해 줌.

궁금한 점 해결 : 설명에서 웹 상의 정적 콘텐츠에 JavaScript가 있는데 JavaScript는 동적 콘텐츠를 처리하기 위한 언어로 알고 있어요. ——> 자바스크립트는 동적 콘텐츠를 위한 언어이지 언어 자체가 동적 콘텐츠를 의미하는 것은 아니다! 자바스크립트 파일 그대로 캐싱되도록 웹 서버에 제공하기 때문에 정적 콘텐츠라고 할 수 있다.

 

Web Application Server(웹 애플리케이션 서버)

  • 동적 콘텐츠(Servlet, JSP)를 처리하기 위해 사용
  • 사용자 요청을 처리하고, DB에 접속하여 SQL쿼리 문에 대한 결과를 반환하는 역할을 수행
  • 컨테이너, 웹 컨테이너, 서블릿 컨테이너라고도 부른다.
  • 일종의 중간 관리자로 웹 서버를 지원하는 역할이다. 이런 소프트웨어를 미들웨어라고 한다.
  • 요즘의 WAS서버는 웹 컨테이너 기능에 웹 서버 기능까지 내장하고 있는 경우가 많다. 그러다보니 WAS 서버는 웹 서버+웹 컨테이너를 합친 프로그램을 말하는 의미로도 쓰이게 됬다.
  • 주요 제품 : Tomcat, Weblogic, Jeus, Resin 등

Database Server란?
데이터의 수집, 저장을 위한 용도로 사용되는 서버로 여러 데이터베이스를 관리하고 있는 서버이다. 예시로는 Mysql, Oracle 등이 존재한다.

 

Web Server와 Web Application Server의 차이점

  • 웹 서버 - 정적 웹 문서들을 HTTP 규약에 따라 클라이언트와 주고받으며 통신하는 역할
  • 웹 애플리케이션 서버 - 규모가 크고 엔터프라이즈 환경에 필요한 트랜잭션, 보안, 트래픽 관리, DB커넥션 풀, 사용자 관리 등의 다양하고 강력한 기능을 제공하는 s/w
웹에 화면을 동적으로 보여주기 위해 여러가지 로직이 들어가는데 한 서버에 로직이 집중되면 무거워지고 속도 저하 및 보안 상으로 문제가 생길 수 있다. 따라서 화면을 뿌려주는 로직(Presentation Logic)를 처리하는 Web Server와 실제 돌아가는 비즈니스 로직(Business Logic)을 처리하는 WAS로 일을 나누어 역할 분담을 시킨다.

 

역할 분담을 하는 이유

1. 기능을 분리하여 서버 부하 방지( 제공 속도 Web Server > WAS )

  • WAS는 DB조회 등 비즈니스 로직를 처리하느라 바쁘다. 단순한 정적 콘텐츠까지 WAS에서 제공한다면 다른 작업에 사용하는 리소스들로 인해 지연이 생길 수 있다. 그래서 정적 콘텐츠는 Web Server를 두고 빠르게 제공해주는 것이 좋다.

 

2. 물리적으로 분리하여 보안 강화

  • 공격에 대해 Web Server를 앞단에 두어 중요한 정보가 담긴 DB나 로직까지 전파되지 못하게 한다.

 

3. 여러 대의 WAS를 연결 가능

  • Load Balancing을 위해 Web Server를 사용
  • fail over(장애 극복), fall back(예외 처리) 처리에 유리

 

4. 다른 종류의 WAS로 서비스 가능

  • java 서버, C# 서버, php 서버 들을 하나의 웹 서버를 통해 서비스 가능하다.

 

 

 

반응형