Web Server, WAS 차이점-2021.11.29

Jonguk Kim·2021년 11월 29일
0

CS

목록 보기
1/9

1. 전체 흐름

2. Web Server (웹 서버)

  • HTTP를 이용한 요청/응답을 처리한다.
  • 웹 상의 정적 콘텐츠(html, css, javaScript, image 등)를 처리한다.
  • WEB-WAS-DB 3계층 구조를 실무에서 주로 활용한다.
  • 주요 제품 : Apache 웹 서버, IIS 웹 서버, Google Web Server, Nginx 등
  1. 정적 컨텐츠 요청 —> 정적컨텐츠(html, css, JavaScript, image 등) 응답
  2. 동적 컨텐츠 요청 -> 웹 서버에서 처리 X —> WAS에 요청 -> 처리된 컨텐츠 웹 서버 받음 -> 다시 클라이언트에게 응답

    NOTE
    JavaScript는 동적 콘텐츠를 처리하기 위한 언어이지 언어 자체가 동적 콘텐츠를 의미하는 것은 아니다!
    JavaScript 파일 그대로 캐싱되도록 웹 서버에서 제공하기 때문에 정적 콘텐츠라고 할 수 있다.

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

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

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

4. Web Server와 Web Application Server의 차이점

  • 웹 서버 - 정적 웹 문서들을 HTTP 규약에 따라 클라이언트와 주고받으며 통신하는 역할
  • 웹 애플리케이션 서버 - 규모가 크고 엔터프라이즈 환경에 필요한 트랜잭션, 보안, 트래픽 관리, DB커넥션 풀, 사용자 관리 등의 다양하고 강력한 기능을 제공하는 S/W

    NOTE
    웹에 화면을 동적으로 보여주기 위해 여러가지 로직이 들어가는데 한 서버에 로직이 집중되면 무거워지고 속도 저하 및 보안 상으로 문제가 생길 수 있다. 따라서 화면을 보여주는 로직(Presentation Logic)를 처리하는 Web Server와 실제 돌아가는 비즈니스 로직(Business Logic)을 처리하는 WAS로 일을 나누어 역할 분담을 시킨다.

4-1. 역할 분담을 하는 이유

  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 서버들을 하나의 웹 서버를 통해 서비스 가능하다.
profile
Just Do It

0개의 댓글