Web/Web

[Web] WAS란? 동적 / 정적 콘텐츠, Tomcat 요청 처리 과정

728x90

 

 

0. 정적 - 동적 컨텐츠와 Web Server - WAS

- 정적 컨텐츠 (Static Contents)

    • 요청 받은 파일 경로에 따라 항상 동일한 file contents를 반환

        • ex) index.html, cat.jpg, style.css, hello.js

    • Web Server정적 컨텐츠를 반환한다

      (대표적인 Web Server 종류 : Apache, Nginx 등)

 

- 동적 컨텐츠 (Dynamic Contents)

    • 파라미터의 내용에 맞는 동적인 contents(프로그램의 결과물)를 반환

    • WAS는 DB 조회, 로직 처리 등의 프로그램을 통해 처리한 동적 컨텐츠를 반환한다

      (대표적인 WAS 종류 : Tomcat)

 

 

 

 

1. WAS 란?

Web Application Server

- DB 조회, 로직 처리 등을 요구하는 동적 컨텐츠를 제공하기 위해 만들어진 Application Server

- Web Container, Servlet Container 라고도 불린다

    • Container : JSP, Servlet을 실행시킬 수 있는 소프트웨어

- WAS의 주요 기능

    • 프로그램 실행 환경과 DB 접속

    • 여러 트랜잭션 관리

    • 업무 처리 비즈니스 로직 수행

 

- WAS에서 Web Server의 기능을 처리할 수 있지만 하지만 WAS에 트래픽이 몰려 부담이 커지기 때문에,

   WAS 와 Web Server를 분리하는 것이 효율적

    • 단순 정적 컨텐츠는 Web Server가 빠르게 클라이언트에게 제공

    • Web Server에 여러 대의 WAS를 연결 가능 → Web Server의 Load Balancing, fail over / back 등 역할

    • 현재는 WAS가 가진 Web Server도 정적 컨텐츠 처리에 성능상 큰 차이가 없다

 

 

 

 

2. Tomcat 구조 및 요청 처리 과정

1. Client가 8080 포트로 요청

2. Tomcat 서버의 Thread Pool 중 한가한 Thread 하나가 요청을 맡아 처리

    - 미리 Thread Pool을 만들어두어 요청이 들어올 때 Thread를 만들 필요 없음

3. Tomcat 내 Service의 Connector가 프로토콜에 따라 Engine에 요청을 전달

    - HTTPRequestProcessor에서 Request, Response를 생성하여 전달

4. Engine - Host - Context - Servlet 전달 및 처리

    - Engine(Catalina) 내 Domain Name이 다른 여러 개의 Host가 가능하다 (보통은 1개의 Host)

    - Host 내 여러 개의 Context

        • Context : 하나의 Web Application (*.war 파일의 형태로 배포)

    - Context 내 여러 개의 Sevlet

        • Servlet : 작은 서버 프로그램 (서버에서 실행되는 프로그램)

        • Servlet(Dispatcher Servlet) → Controller → Main method

5. 작업 결과를 Client에 전달

 

 

 

 

 

 

 

 

📌  References

- https://gmlwjd9405.github.io/2018/10/27/webserver-vs-was.html

 

[Web] Web Server와 WAS의 차이와 웹 서비스 구조 - Heee's Development Blog

Step by step goes a long way.

gmlwjd9405.github.io

 

 

 

728x90