네른

3. WAS 본문

궁금/아무거나

3. WAS

네른 2020. 6. 17. 11:31

WAS란 Web Application Server의 줄임말로, 웹 서버를 구성하는 데 있어 주로 사용되는 큰 요소 중 하나이다.

보편적으로 알고있는 웹 서버의 경우, 정적인 웹 페이지를 사용자에게 제공하는 데 주로 사용된다.

  - 여기서 정적인 웹 페이지란, 사용자의 요청에 따라 이미 서버에 저장되어 있는 특정 파일들을 사용자에게 보여주는 페이지를 말한다.

  - 사용자는 정적인 웹 페이지를 볼 때, 서버에 저장된 파일, 정보가 변경되지 않는 이상 항상 동일한 화면을 보게 된다.

 

반면, WAS는 사용자에게 동적 웹 페이지를 제공하고자 할때 주로 사용된다.

정적 페이지에서는 다 처리 할 수 없는 경우, 다시말해 사용자의 요청에 따라 다른 응답을 제공해야 할 때 동적 페이지를 사용하게 된다.

  - 예를 들어, 웹 페이지에 띄워야 할 내용에 데이터베이스 조회, 별도의 로직이 필요한 경우를 말한다.

  - 대표적으로 JSP, Servlet등의 환경을 이용하여 제공한다.

 

WAS가 데이터를 처리하는 과정은 크게 다음과 같다.

 

1. 앞단의 웹 서버에서 사용자의 요청에 대한 정적 웹 페이지를 제공한다.

2. 만약 요청이 정적 웹 페이지로 해결되지 않는 경우, 웹 서버는 이를 WAS의 컨테이너(Container - Servlet Container 등을 의미)에 전달한다.

  - 여기서 Servlet 이란 Server Application let(조각)의 약자로, 자바를 이용하여 동적인 웹 페이지를 생성할 때 사용된다.

  - 서블릿? 서브렛? 다양하게들 읽으시던데 서블릿이 대표적인 것 같다.

3. 컨테이너는 전달받은 요청에 따라 Servlet을 호출한다.

4. 호출된 Servlet은 생성된 스레드에 의해 doGet(), doPost()와 같은 함수가 호출된다.

  - 스레드는 컨테이너에 의해 생성되고 관리된다.

  - 서블릿 또한 WAS의 컨테이너가 객체를 생성하고 관리한다.

  - 컨테이너의 주 역할이 이러한 스레드의 라이프사이클 관리.

5. 호출된 함수의 결과가 컨테이너에게 전달되고, 컨테이너는 이를 웹 서버에 전달한다.

Comments