진짜 개발자
본문 바로가기

Web/Web

Web - Web Server, Web Container, WAS 의 이해

728x90
WebSer

Web Server(웹서버)

- 웹서버란 사용자가 요청하는 정적 컨텐츠를 전달하는 소프트웨를 의미한다.(소프트웨어를 의미할때도 있고 하드웨어를 의미할때도 있음)

- 동적인 웹페이지도 응답을 하지만 동적인 웹페이지 처리는 WAS에서 처리되며 웹서버에서는 결국 정적인 컨텐츠를 전달하게 된다.

 

 

종류

  • Apache

  • Nginx

  • IIS

    등..

 

 

동적, 정적

  1. 정적 컨텐츠

- 정적컨텐츠란 있는 그대로의 것을 제공하는 것을 의미한다. 예를들어 서버에서 코끼리.jpg의 이미지를 보여주는 웹페이지가 있을 때 코끼리 사진을 그대로 보여주는 것들을 정적컨텐츠라고 한다.

 

  1. 동적 컨텐츠

- 동적컨텐츠란 서버가 컨텐츠를 처리하여 제공하는 것을 의미한다. 즉, 사용자와 상호작용하며 때에 따라 다른 데이터를 보여주는 웹페이지를 의미한다.

 

 

Web Container(웹 컨테이너)

Servlet, JSP를 실행할 수 있는 소프트웨어를 웹컨테이너 또는 서블릿컨테이너라고 한다.

 

역할

- 웹서버에서 JSP를 요청하면 웹컨테이너에서는 JSP파일을 서블릿 파일로 변환한 뒤 컴파일하여 이것을 실행한 결과를 웹 서버에 전달한다.

 

 

 

WAS

- Web ServerWeb Container가 합쳐진 것

- Web Server는 정적 컨텐츠를 요청에따라 전달해주는 역할을 하는 반면에 WAS는 사용자의 요청에 따라 서버에서 프로그램을 실행 및 처리한 뒤 그것을 다시 정적인 페이지로 변환해 반환하는 등의 동적인 처리를 담당한다.

 

동작과정 

  1. 웹서버를 통해 필요한 페이지를 요청받는다.
  2. Containerweb.xml(배포서술자)를 참조하여 스레드를 생성하고 요청 및 응답 객체(HttpServletRequest, HttpServletResponse)를 생성하여 스레드에게 전달한다.
  3. 스레드 및 요청, 응답 객체 생성을 완료했다면 Container는 사용자의 요청에 맞는 Servlet을 호출(service())한다.
  4. 호출된 Servlet의 요청을 담당하는 thread가 요청에 따라 doGet(), doPost()를 호출한다.
  5. 호출된 doPost(), doGet() 메소드는 생성된 동적 페이지를 Response객체에 실어 Container에게 전달한다.
  6. Container는 전달받은 Response객체를 HttpResponse형태로 전환하여 웹서버에 전달하고 생성되었던 스레드를 종료하고 요청 및 응답 객체를 소멸시킨다.

 

종류

  • Tomcat

  • tmax jeus

  • JBOSS

  • Oracle

    등..


'Web > Web' 카테고리의 다른 글

Web - HTTP 커넥션 관리(성능 향상을 위한)  (0) 2019.08.25
Web - cookie 와 session 분석 (servlet 예제)  (0) 2019.03.31
Web - WSGI 와 CGI  (0) 2018.12.15
Web - Apache 설치 (Window, CentOS7(Linux))  (0) 2018.12.15
DOCTYPE html  (0) 2018.09.05