WebServer & WAS

숭이·2021년 5월 12일

네트워크

목록 보기
4/11

Static Pages

  • 바뀌지 않는 페이지
  • 단순 HTML, CSS, JavaScript, imgae, file등이 해당

Dynamic Pages

  • 인자에 따라 동적인 Content를 반환하는 페이지
  • 내부 프로그램 로직에 따라 만들어진 결과물

WebServer

  • 웹 브라우저 클라이언트로부터 HTTP 요청을 받아들이고 HTML 문서와 같은 웹페이지를 반환하는 컴퓨터 프로그램
  • Static Page를 Client에게 전달한다.
  • 동적 컨텐츠를 요청 받으면 WAS에게 해당 요청을 넘겨주고 WAS에서 처리한 결과를 클라이언트에게 전달한다.
  • 대표적인 WebServer : Apache

WAS(Web Application Server)

  • WAS = WebServer + WebContainer(Servlet을 실행시킬 수 있는 소프트웨어)
  • DB 조회나 다양한 로직처리를 요구하는 동적인 컨텐츠를 제공하기 위해 만들어진 Application Server
  • WAS는 JSP, Servlet 구동환경을 제공한다
  • 웹 서버의 기능들을 구조적으로 분리하여 처리하는 역할을 한다.
  • 대표적인 WAS : Toncat

Web Service Architecture

  • 웹 서버가 필요한 이유 : 웹서버에서 클라이언트의 정적페이지 요청을 처리해서 WAS의 부하를 줄여준다
    -> WAS가 다양한 로직 및 데이터처리를 하는데 집중할 수 있도록 만들어 서버부하를 방지한다.
  • WAS가 필요한 이유 : 사용자가 원하는 요청에 대한 결과값을 모두 미리 만들어놓고 서비스하기에는 자원이 절대적으로 부족함
    -> WAS를 통해 요청이 들어올 때 마다 DB와 비지니스 로직을 통해 결과물을 만들어서 제공
  • 따라서 웹서버를 WAS 앞에 두고, 필요한 WAS들을 웹 서버에 플러그인 형태로 설치하면 효율적인 분산처리가 가능함!!

-> 실행 시뮬레이션

  1. 클라이언트의 요청을 먼저 웹 서버가 받은 다음, WAS에게 보내 관련된 Servlet을 메모리에 올림

  2. WAS는 web.xml을 참조해 해당 Servlet에 대한 스레드를 생성 (스레드 풀 이용)

  3. 스레드는 Servlet의 service() 메소드를 호출

  4. service() 메소드는 요청에 맞게 doGet()이나 doPost() 메소드를 호출

  5. doGet()이나 doPost() 메소드는 인자에 맞게 생성된 적절한 동적 페이지를 Response 객체에 담아 WAS에 전달

  6. WAS는 Response 객체를 HttpResponse 형태로 바꿔 웹 서버로 전달

0개의 댓글