• 웹 서버 프로젝트를 진행하며 서버 개발에 있어 기초적인 개념인 Web server와 WAS(Web Application Server)의 차이점을 알아보겠습니다. 

먼저 두 개의 차이를 알기 전에 정적페이지와 동적페이지에 대해 알아야 합니다. 

 

Static Pages(정적 페이지)

  • 항상 동일한 페이지를 반환한다.
  • 웹서버에 이미 완성된 파일(html)을 전달하는 웹페이지
  • 사용자는 서버의 데이터가 변경되지 않은 한 고정된 웹페이지를 보게 됨

장점

  • 다른 처리 없이 요청에 대한 파일만 전송하기 때문에 빠름
  • 단순한 문서로 웹서버를 구축하므로 호스팅 서버에 연결하는 비용이 적음

단점

  • 저장된 정보만 보여주기 때문에 서비스가 한정적
  • 추가 수정 삭제 등의 작업 시 코드를 직접 건드리기에 관리가 힘듦

Dynamic Pages(동적 페이지)

  • 인자의 내용에 맞게 동적인 contents를 반환
  • 서버에 있는 데이터를 스크립트에 의해 가공처리 하여 만들어진 html 문서를 전달하는 웹페이지
  • 요청에 관하여 사용자는 조건에 따라 다른 결과를 받음
  • 사용자는 상황, 시간, 요청 등에 따라 달라지는 웹페이지를 보게 됨

장점

  • 여러 요청에 따라 웹페이지를 동적으로 생성하므로 서비스가 다양
  • 추가 수정 삭제 등의 작업이 용이

단점

  • 사용자에게 웹페이지를 전달하기 전에 처리해야 할 작업을 거치므로 상대적으로 느림
  • 웹서버 이외에 추가적인 웹애플리케이션 서버(backend)가 필요하여 추가비용 발생

 

Web Server

  • HTTP 프로토콜 기반으로 클라이언트가 웹브라우저에 서 어떠한 요청을 하면 그 요청을 받아 정적 콘텐츠를 제공하는 서버
  • 웹 서버가 정적 콘텐츠가 아닌 동적 콘텐츠를 요청받으면 WAS에게 해당 요청을 넘겨주고, WAS에서 처리한 결과를 클라이언트에게 전달하는 역할도 해줌

WAS(Web Application Server)

  • WAS란 DB 조회 혹은 다양한 로직 처리를 요구하는 동적 컨텐츠를 제공하기 위해 만들어진 Application 서버
  • HTTP 프로토콜을 기반으로 사용자 컴퓨터나 장치에 애플리케이션을 수행해 주는 미들웨어로서, 주로 데이터베이스 서버와 같이 수행
  • WAS는 JSP, Servlet 구동환경을 제공해 주기 때문에 서블릿 컨테이너 혹은 웹 컨테이너라고도 부름
  • 분산 트랜잭션, 보안, 메시징, 쓰레드 처리 등의 기능을 처리하는 분산 환경에서 사용된다. WAS는 프로그램 실행 환경과 DB 접속 기능을 제공하고, 여러 개의 트랜잭션을 관리 가능하다. 또한 비즈니스 로직을 수행할 수 있다.
  • Tomcat, JBoss, WebSphere 등
  • Web Server와 Web Container의 역할을 모두 할 수 있다.


분리하는 이유

  • 서버 부하 방지
  • 보안 강화
    • SSL에 대한 암호화, 복호화 처리에 웹서버를 사용가능
  • 여러 대의 WAS 연결 가능
    • 여러 개의 서버를 사용하는 대용량 웹 애플리케이션의 경우 웹 서버와 WAS를 분리하여 무중단 운영을 위한 장애 극복에 쉽게 대응
    • 무중단 운영이란 보통 무중단 배포라고 부르며 운영 중인 서비스를 중단하지 않고 배포하는 것을 의미
  • 여러 웹 애플리케이션 서비스 가능
    • 하나의 서버에서 PHP, JAVA 애플리케이션을 함께 사용 가능

Web Service Architecture

  1. Client -> Web Server -> DB
  2. Client -> WAS -> DB
  3. Client -> Web Server -> WAS -> DB

was의 3번 동작과정(참고 : https://codechasseur.tistory.com/25)


참고

+ Recent posts