본문 바로가기

Dev/Spring Boot

Spring 기초 1) WAS란 무엇인가?

728x90

동적 페이지는 사용자와 상호작용하며 어떤 버튼을 누르면 이벤트가 작동하는 등으로 작동해야한다.

동적 웹 페이지에서 상호작용을 위해 필요한 것이 WAS이다.

WAS

  • 사용자 컴퓨터나 장치에 어플리케이션을 수행해주는 미들웨어이다. 주로 동적 서버 컨텐츠를 수행하는 것으로 웹 서버와 다르며 데이터 베이스 서버와 같이 작동하게 된다.
  • WAS는 Web Server의 기능도 가지고있지만 Web Container와 구분되기 때문에 구조적으로 분리되었다. 위 사진을 보면 WAS는 웹서버와 컨테이너를 모두 포함한다.
  • 덕분에 사용자의 다양한 요구에 맞춰 웹 서비스를 제공할 수 있으며, WAS는 JSP, Servlet 등 구동 환경을 제공해주기 때문에 웹 컨테이너 혹은 서블릿 컨테이너라고도 불린다.

Web Service Architecture

클라이언트가 만약 웹 서버에 요청을 보낼 경우

  1. Web Server는 클라이언트의 요청을 WAS에 보냄
  2. WAS는 관련된 서블릿을 메모리에 올림
  3. WAS는 web.xml을 참고하여 해당 Servlet 에 대한 쓰레드를 생성함
  4. HttpServletRequest 와 HttpServletResponse 객체를 생성하여 서블릿에 전달함.
  5. 쓰레드는 서블릿의 서비스 메소드를 호출함
  6. get, post 메소드는 인자에 맞게 생성된 동적 페이지를 리스폰스 객체에 담아 WAS에 전달함
  7. WAS는 Response 객체를 HttpResponse 형태로 바꾸어 Web Server에 전달함
  8. 생성된 스레드를 종료하고 두 HttpServletRequest, Response 객체를 제거함

그렇다면 Web Server는 어떻게 만들까

Apache

  • World Wide WebServer 용 소프트웨어로 HTTP 아파치 서버라고도 불리는 웹 서버이다. 리눅스나 윈도우 등 거의 모든 운영체제에서 사용할 수 있으며 구축이 쉽고 다양한 추가기능이 있음.
  • 즉 HTTP요청을 처리하는 웹 서버

Tomcat

  • 위에서 보았던 WAS는 웹서버와 웹 컨테이너가 합쳐진 형태였다. 톰캣은 그 중 서블릿 컨테이너만 있는 WAS이다.
  • 컨테이너 : JSP, Servlet을 실행할 수 있는 소프트웨어
  • 서블릿 : 클라이언트의 요청을 받고 요청을 처리하여 결과를 클라이언트에게 제공하는 자바 인터페이스
  • 톰캣은 웹 서버와 연동하여 실행할 수 있는 자바 환경을 제공하며 Java Server Page 와 서블릿이 실행할 수 있는 환경을 제공한다.

아파치 톰캣

  • Tomcat이 Apache의 기능을 포함하고 있기 때문에 아파치 톰캣이라 함께 부른다.동적 웹 페이지에서 상호작용을 위해 필요한 것이 WAS이다.WAS
    • 사용자 컴퓨터나 장치에 어플리케이션을 수행해주는 미들웨어이다. 주로 동적 서버 컨텐츠를 수행하는 것으로 웹 서버와 다르며 데이터 베이스 서버와 같이 작동하게 된다.
    • WAS는 Web Server의 기능도 가지고있지만 Web Container와 구분되기 때문에 구조적으로 분리되었다. 위 사진을 보면 WAS는 웹서버와 컨테이너를 모두 포함한다.
    • 덕분에 사용자의 다양한 요구에 맞춰 웹 서비스를 제공할 수 있으며, WAS는 JSP, Servlet 등 구동 환경을 제공해주기 때문에 웹 컨테이너 혹은 서블릿 컨테이너라고도 불린다.
    Web Service Architecture클라이언트가 만약 웹 서버에 요청을 보낼 경우
    1. Web Server는 클라이언트의 요청을 WAS에 보냄
    2. WAS는 관련된 서블릿을 메모리에 올림
    3. WAS는 web.xml을 참고하여 해당 Servlet 에 대한 쓰레드를 생성함
    4. HttpServletRequest 와 HttpServletResponse 객체를 생성하여 서블릿에 전달함.
    5. 쓰레드는 서블릿의 서비스 메소드를 호출함
    6. get, post 메소드는 인자에 맞게 생성된 동적 페이지를 리스폰스 객체에 담아 WAS에 전달함
    7. WAS는 Response 객체를 HttpResponse 형태로 바꾸어 Web Server에 전달함
    8. 생성된 스레드를 종료하고 두 HttpServletRequest, Response 객체를 제거함
    그렇다면 Web Server는 어떻게 만들까
    • World Wide WebServer 용 소프트웨어로 HTTP 아파치 서버라고도 불리는 웹 서버이다. 리눅스나 윈도우 등 거의 모든 운영체제에서 사용할 수 있으며 구축이 쉽고 다양한 추가기능이 있음.
    • 즉 HTTP요청을 처리하는 웹 서버
    Tomcat
    • 위에서 보았던 WAS는 웹서버와 웹 컨테이너가 합쳐진 형태였다. 톰캣은 그 중 서블릿 컨테이너만 있는 WAS이다.
    • 컨테이너 : JSP, Servlet을 실행할 수 있는 소프트웨어
    • 서블릿 : 클라이언트의 요청을 받고 요청을 처리하여 결과를 클라이언트에게 제공하는 자바 인터페이스
    • 톰캣은 웹 서버와 연동하여 실행할 수 있는 자바 환경을 제공하며 Java Server Page 와 서블릿이 실행할 수 있는 환경을 제공한다.
    아파치 톰캣
    • Tomcat이 Apache의 기능을 포함하고 있기 때문에 아파치 톰캣이라 함께 부른다.