[주제] Web Server ↔ WAS 구조 및 동작과정
이번 글에서는 이전에 살펴보았던 웹 사이트에 접속하는 전체 흐름 중, 웹 서버 뒷단의 Web Server ↔ WAS 간의 상세 구조와 동작과정을 정리해보도록 하겠습니다.
1. 웹 서버(Web Server)와 WAS(Web Application Server) 개념
- 웹 서버(Web Server)란?
웹 브라우저에서 Client(웹 브라우저)로부터 HTTP Request를 받은 후, HTML, CSS, 이미지 등과 같은 정적 컨텐츠들을 제공해주는 프로그램입니다.
대표적인 예로 Apache, Nginx, IIS, WebtoB 등이 있습니다.
- WAS(Web Application Server)란?
DB 조회 및 다양한 로직 처리 요구 시 동적인 컨텐츠를 제공하기 위해 만들어진 애플리케이션 서버입니다.
대표적인 예로 Tomcat, JEUS, JBoss 등이 있습니다.
2. Web Server ↔ WAS ↔ DB 구조
일반적으로 웹 서버(Web Server) 뒷 단계의 구조는 아래와 같습니다.
웹 서버는 웹 브라우저의 요청을 받아서, 요청된 페이지의 logic 및 데이터베이스와의 연동을 위해 WAS(Web Application Server)에 처리를 요청합니다.
WAS는 데이터베이스와 데이터 처리를 수행하고, logic 및 데이터베이스 작업의 처리 결과를 웹 서버에 보냅니다.
웹 서버는 다시 웹 브라우저에 응답하며, 요청 결과를 클라이언트에게 보여줍니다.
3. Web Server ↔ WAS 동작과정
① 웹 서버(Web Server)는 클라이언트로부터 HTTP Request를 받고, 동적 처리의 경우 WAS에 요청합니다.
② 컨테이너(Container)는 HttpServletRequest, HttpServletResponse 객체를 생성합니다.
※ 컨테이너(Container)란?
웹 컨테이너는 서블릿의 생명주기를 관리하고, URL과 특정 서블릿을 매핑하며 URL 요청이 올바른 접근 권한을 갖도록 보장하는 역할을 수행합니다.
※ 서블릿(Servlet)
동적 웹 페이지를 만들 때 사용되는 Java 기반의 웹 애플리케이션 프로그래밍 기술입니다.
서블릿은 웹 요청과 응답의 흐름을 간단한 메서드 호출만으로 체계적으로 다룰 수 있게 해줍니다.
③ web.xml(배포서술자)을 참조하여, 사용자가 요청한 URL이 어느 서블릿(Servlet)에 대한 요청인지 찾습니다.
※ web.xml
WAS가 실행되면 최초로 실행되는 파일입니다.
컨테이너가 서블릿들을 생성하고 어떤 서블릿이 어떤 요청(Mapping)을 할 것인지 등에 대한 정보들을 가지고 있습니다.
④ 해당 서블릿에서 service() 메소드를 호출하고, POST/GET 여부에 따라 doPost() 또는 doGet()이 호출됩니다.
※ Service() 메소드
특정 HTTP 요청(GET, POST 등)을 처리하는 메서드 (doGet(), doPost() 등)를 호출합니다.
⑤ 호출된 doPost() 또는 doGet() 메소드는 동적 페이지를 생성한 후, HttpServletResponse 객체에 실어 컨테이너에 전달합니다.
⑥ 컨테이너는 전달받은 객체를 웹 서버에 전달한 후, 요청(HttpServletRequest) 및 응답(HttpServletResponse)객체를 소멸시킵니다.
'일 > 개발, IT정보' 카테고리의 다른 글
대용량 DB 관리하는 방법 및 개념 (0) | 2024.07.28 |
---|---|
서버 이중화, 로드 밸런싱 구성 및 개념 (0) | 2024.07.27 |
도메인(URL) 입력 시 IP와 통신하는 과정 / 개념 (0) | 2024.07.22 |
WAS DB OS 메모리 Min/Max 동일한 값으로 설정 시 (0) | 2024.07.20 |
Windows 잦은 네트워크 끊김 현상 대처 방법 (0) | 2024.07.19 |