Web Server와 WAS

이영재·2022년 6월 25일
0

Web Server


개념

  • 하드웨어: Web 서버가 설치되어 있는 컴퓨터
  • 소프트웨어: 웹 브라우저 클라이언트로부터 HTTP 요청을 받아 정적인 컨텐츠(.html .jpeg .css 등)를 제공하는 프로그램

기능

  • HTTP 프로토콜을 기반으로 하여 클라이언트의 요청을 서비스하는 기능을 담당
  • 요청에 따라 아래 두가지 기능 중 적절하게 선택하여 수행
    • 기능 1)
      • 정적인 컨텐츠를 제공
      • WAS를 거치지 않고 바로 자원을 제공
    • 기능 2)
      • 동적인 컨텐츠 제공을 위한 요청을 전달
      • 클라이언트의 request를 WAS로 보내고, WAS가 처리한 결과를 클라이언트에게 전달(response)
      • 클라이언트는 일반적으로 웹 브라우저를 의미



WAS(Web Application Server)


개념

  • DB 조회나 다양한 비즈니스 로직 처리를 요구하는 동적인 컨텐츠를 제공하기 위해 만들어진 Application Server(미들웨어)
  • 웹 컨테이너(Web Container) 혹은 서블릿 컨테이너(Servlet Container)라고도 함.
    • Container란 JSP, Servlet을 실행시킬 수 있는 소프트웨어를 말한다.

기능

  • WAS = Web Server + Web Container
  • Web Server 기능들을 구조적으로 분리하여 처리하고자하는 목적으로 등장
  • 프로그램 실행 환경과 DB 접속 기능, 트랜잭션 관리 기능 등을 제공하며, 비즈니스 로직을 수행



Web Server가 필요한 이유


  • Web Server를 통해 정적인 파일들을 Application Server까지 가지 않고도 앞단에서 빠르게 처리해줄 수 있다.
  • 따라서 Web Server에서는 정적 컨텐츠만을 처리하도록 기능을 분배하여 서버의 부하를 줄일 수 있다.



WAS가 필요한 이유


  • Web Server만을 이용해야 한다면 사용자가 원하는 요청에 대한 결과값을 모두 만들어둔 상태에서 서비스를 해야하는데 이렇게 수행하기에는 자원이 절대적으로 부족하다.
  • 따라서 WAS를 통해 요청에 맞는 데이터를 DB에서 가져와서 비즈니스 로직에 맞게 그때 그때 결과를 만들어 제공함으로써 자원을 효율적으로 사용할 수 있다.



Web Sever와 WAS를 분리해서 사용하는 이유


  • 기능을 분리하여 서버 부하를 방지합니다
    • WAS는 DB 조회나 다양한 로직 처리에 집중하고 단순한 정적 컨텐츠는 Web Server를 통해 클라이언트에게 빠르게 제공할 수 있습니다.
  • 물리적으로 분리하여 보안을 강화할 수 있습니다
  • 여러 대의 WAS를 연결할 수 있습니다.
    • Load Balancing을 위해서 Web Server를 사용합니다.
    • fail over(장애 극복), fail back 처리에 유리
    • 대용량 웹 애플리케이션의 경우 Web Server와 WAS를 분리하여 무중단 운영을 위한 장애 극복에 쉽게 대응할 수 있습니다.
  • 자원 이용의 효율성 장애 극복, 배포 및 유지보수의 편의성을 제공합니다.



[참고] Static Pages와 Dynamic Pages


  1. Static Pages

    • Web Server는 파일 경로 이름을 받아 경로와 일치하는 file contents를 반환한다.
    • 항상 동일한 페이지를 반환합니다.
    • 예) image, html, css, javascript 파일과 같이 컴퓨터에 저장되어 있는 파일들
  2. Dynamic Pages

    • 인자의 내용에 맞게 동적인 contents를 반환한다.
    • 즉, 웹 서버에 의해서 실행되는 프로그램을 통해서 만들어진 결과물
      (Servlet: WAS 위에서 돌아가는 Java Program)
profile
왜why를 생각하는 두괄롬이 되자!

0개의 댓글