WAS와 Web Server

Expert Inpyo·2022년 10월 20일
0

출처, WAS vs WebServer

WebServer와 WAS

흐름

웹 브라우저에서 WebServer로 HTTP 요청 보냄

  • 정적인 요청인 경우 즉각적으로 WebServer에서 응답

  • 동적인 요청인 경우 Web Application Server 중 한 곳에서 처리 위임

  • Static Web Page(정적 웹 페이지)

    • 언제 접속해도 같은 응답을 주는 페이지
    • 서버는 HTML, CSS, JS 등의 파일로 응답합
  • Dynamic Web Page(동적 웹 페이지)

    • 브라우저에게 요청을 받은 이후 서버가 추가적인 처리 과정을 거친 이후 클라이언트에게 응답
    • 동적인 응답을 위해 JAVA 같은 언어 사용

WebServer

정의

  • HW : Web Server가 있는 컴퓨터
  • SW : 클라이언트가 서버에 페이지 요청을 하면 요청을 받아 정적 콘텐츠(Html, png, css 등)를 제공하는 미들웨어의 일종

기능

  1. 클라이언트에게 요청 받고 정적인 Request라면 정적인 콘텐츠 Response
  2. 클라이언트에게 요청 받고 동적인 Request라면 WAS로 처리 이관 후 WAS에서 처리한 결과를 클라이언트에게 전달

대표적인 Web Server

Apahce / WebtoB / NginX / IIs 등

WAS(Web Application Server)

정의

동적 컨텐츠를 제공하기 위한 Application Server HTTP를 통해 컴퓨터나 장치에 어플리케이션을 수행하는 미들웨어

DB 조회 필요 or 사용자의 입력을 받아 서버에서 가변적으로 로직을 수행하는 등의 동적인 처리가 필요한 동적인 요청을 처리하기 위해 만들어짐

WebContainer의 JSP/Servlet 구동 환경을 제공
프로그래밍 언어 로 작성한 뒤 HTML 문서를 만들고 WebServer로 전달함

기능

  1. 프로그램 실행 환경과 DB 접속 기능 제공
  2. 여러 개의 트랜잭션 관리
  3. 업무를 처리하는 프로그래밍 언어의 비즈니스 로직 수행
  4. Web Service 플랫폼으로서의 역할 병행

작동 프로세스

  1. Web Server로 요청이 오면 컨테이너가 응답
  2. 컨테이너는 web.xml를 참조해 해당 서블릿에 대한 쓰레드 생성, Request and Response 객체 생성
  3. 컨테이너는 JSP/Servlet 호출
  4. 호출된 Servlet의 작업을 담당하게 된 쓰레드는 HTTP Method에 맞는 메서드 실행
  5. 호출된 메서드는 동적 페이지를 Response 객체에 댐아 컨테이너에 전달
  6. 컨테이너는 전달받은 Response 객체를 HTTPResponse 형태로 바꿔 WebServer에 전달, 생성된 쓰레드는 종료, Request & Response 객체 소멸시킴

대표적인 WAS

Tomcat / Jeus / JBoss 등

Web Server and WAS 분리한 이유

WAS Server 하나로 정적 + 동적인 콘텐츠 모두 처리 가능
But, WAS는 DB 조회 or 프로그래밍 로직 처리로 인해 많은 트래픽 처리에 있어 약점 가짐
트래픽이 점차 많아진다면 정적인 요청은 Web Server가 처리하게끔 하는 것이 성능상으로 유리함

따라서, 장점
1. 기능 분리해 서버 부하 방지
2. 물리적으로 분리해 보안 강화(Web Server와 WAS는 port 번호가 다름)
3. 여러 대의 WAS 연결 가능
4. 여러 웹 어플리케이션 서비스 가능

profile
도전! 데이터 엔지니어

0개의 댓글