Featured image of post Web

Web

웹 동작 방식

웹 동작 방식

클라이언트(브라우저)가 HTTP(URL)을 통해 요청을 보내면 HTML, CSS, 이미지와 같은 정적 콘텐츠를 응답으로 보내게 되고 그것을 받은 클라이언트가 해석하여 페이지로 보여준다.

Static pages와 Dynamic Pages

Static and Dynamic

Static Pages

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

Dynamic Pages

  • 인자의 내용에 맞게 동적인 Contents를 반환
  • 웹 서버에 의해서 실행되는 프로그램을 통해서 만들어진 결과물(WAS)위에서 돌아가는 프로그램

Web Server와 WAS의 차이

Web Server와 WAS

Web Server

소프트웨어와 하드웨어로 구분된다.

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

Web Server의 역할

HTTP 프로토콜을 기반으로 하여 클라이언트의 요청을 서비스 하는 기능 담당

요청에 따라 두 가지 기능 중 적절하게 선택하여 수행

  1. 정적인 컨텐츠 제공
    • WAS를 거치지 않고 바로 자원을 제공한다
  2. 동적인 컨텐츠 제공을 위한 요청 전달
    • 클라이언트의 요청을 WAS에 보내고, WAS가 처리한 결과를 클라이언트에게 전달한다.

Web Server의 예

  • Apache Server
  • Nginx
  • IIS 등

WAS(Web Application Server)

DB 조회나 다양한 로직 처리를 요구하는 동적인 컨텐츠를 제공하기위해 만들어진 Application Server

HTTP를 통해 컴퓨터나 장치에 어플리케이션을 수행해주는 미들웨어이다.

웹 컨테이너(Web Container), 서블릿 컨테이너(Servlet Container)라고도 불림

WAS의 역할

WAS = Web Server + Web Container

웹서버 기능들을 구조적으로 분리하여 처리하고자하는 목적으로 제시됨

  • 분산 트랜잭션
  • 보안
  • 메시징
  • 쓰레드 처리 등

DB와 서버와 같이 수행됨

WAS의 주요 기능

  • 프로그램 실행 환경과 DB 접속 기능 제공
  • 여러 개의 트랜잭션 관리 기능
  • 업무를 처리하는 비지니스 로직 수행

WAS가 필요한 이유

웹 페이지는 정적 컨텐츠와 동적 컨텐츠가 모두 존재한다.

  • 사용자의 요청에 맞게 적절한 동적 컨텐츠를 만들어서 제공해야 한다.
  • 웹 서버만을 이용하게 되면 그에 맞는 결과가 정적 파일로 존재해야 한다.

따라서 WAS를 통해 요청에 맞는 데이터를 DB에서 가져와 비즈니스 로직에 맞게 결과를 만들어 제공함으로 자원을 효율적으로 사용할 수 있다.

WAS와 Web Server를 분리하는 이유

  1. 기능 분리를 통한 서버 부하 방지
    WAS만으로도 웹서비스를 제공 가능하지만 WAS는 DB조회 등 동적인 웹 페이지를 위한 다양한 동작을 하기 때문에 바쁘다. 따라서 웹 서버를 통해 정적인 컨텐츠를 제공하여 부하를 방지한다.

  2. 물리적으로 분리하여 보안 강화
    SSL에 대한 암복호화 처리에 웹서버를 사용한다.

  3. 여러대의 WAS를 연결 가능
    Load Balancing을 위해 Web Server를 사용 가능하다

  • fail over(장애 극복), fail back 처리에 유리
  • 여러대의 서버를 사용하는 대용량 웹 어플리케이션의 경우 웹 서버와 WAS를 분리하여 무중단 운영을 위한 장애 극복에 쉽게 대응할 수 있다.
  1. 여러 웹 어플리케이션 서비스 가능
    하나의 웹 서버로 다양한 WAS를 이용하게 만들 수 있다.