본문 바로가기

CS & ITS/CS

WS(Web Server)와 WAS(Web Application Server) 차이점

이 문서의 내용

    더보기

    웹 서버와 웹 애플리케이션 서버의 가장 큰 차이점은 역할과 처리 내용입니다.

    웹 서버는 정적 리소스를 관리하며 웹 애플리케이션 서버는 비즈니스 로직과 데이터 처리를 담당합니다.

    즉 웹 서버는 프론트 앤드, 웹 애플리케이션 서버는 백앤드에 해당합니다.

    WS(Web Server)

    웹 서버(WS)는 정적인 웹 리소스를 서비스하기 위한 소프트웨어입니다. 정적 리소스는 HTML CSS Javascript 이미지파일 등을 의미합니다.

    웹 서버는 클라이언트의 HTTP 요청에 맞는 정적 리소스를 반환합니다.

    따라서 비즈니스 로직이나 데이터를 처리하는 대신 단순히 정적 리소스로 구성된 웹 페이지를 제공하는 것이 목적입니다.

    구분 비고
    정적 리소스 제공 클라이언트의 HTTP 요청에 맞는 HTML CSS Javascript 이미지  파일 등을 제공합니다.
    인증과 보안 SSLTLS와 같은 암호화된 HTTPS를 사용해 보안을 강화하고 웹 페이지에 대한 인증 방법을 제공합니다.
    리버스(Reverse) 프록시 클라이언트의 HTTP 요청을 웹 애플리케이션 서버로 전달합니다.
    이로인해 웹 서버와 웹 애플리케이션 서버의 역할을 분리하여 보안과 성능, 생산성을 높일 수 있습니다.

    WAS(Web Application Server)

    웹 애플리케이션 서버(WAS)는 쉽게 말해 웹 애플리케이션을 서비스하기 위한 소프트웨어입니다. 웹 애플리케이션은 클라이언트입니다.

    클라이언트의 요청에 따라 동적인 웹 페이지 구성을 위한 데이터를 처리하고 데이터베이스에 쿼리하고 비즈니스 로직을 처리하는 등의 동작과 관련된 역할을 수행합니다.

    구분 비고
    동적 웹 페이지 구성 웹 사이트는 사용자마다 다른 화면을 표시합니다.
    각 사용자에 맞는 동적 웹 페이지 구성을 위한 데이터를 전달합니다.
    WAS의 대상 클라이언트가 게임인 경우 게임 캐릭터의 정보 등이 전달 될 수도 있습니다.
    데이터 스토리지 연동 클라이언트의 동작에 따른 결과는 데이터 스토리지에 저장되어야 합니다.
    일반적으로 많이 사용되는 스토리지는 DB Redis 등이 있습니다.
    트랜잭션 동일한 클라이언트의 요청이 레이스 컨디션에 의해 예상치 못한 결과를 발생시키거나 중도 실패하는 경우에 대비합니다.

    정리 및 복습

    • WS와 WAS의 가장 큰 차이점은 역할입니다. WS는 정적 웹 리소스를 제공하며 WAS는 비즈니스 로직을 처리합니다.
    • 클라이언트의 HTTP 요청이 WS에 먼저 전달되고, WS는 리버스 프록시로 요청을 WAS에 전달합니다.
    더보기

    WS와 WAS는 종종 하나의 애플리케이션에서 동시에 구현되며 역할이 모호한 경우가 존재합니다. 실무에서도 WS와 WAS를 엄격하게 구분하기 보다는 두루뭉실하게 웹 서버라고 부르는 경향이 있습니다.