SpringBoot

Springboot -동작원리

i009727 2021. 10. 4. 17:00

# Web Server

  • HTTP 프로토콜을 기반으로 client의 HTTP request를 서비스 하는 서버, 프로그램
  • 정적 컨텐츠 제공
    • WAS없이 즉시 request받은 서비스를 제공할 수 있다
    • 이미 저장된 파일을 의미하고, 항상 동일한 페이지를 반환한다.
  • 동적 컨텐츠 제공을 위해 request 전달
    • client의 request를 WAS에 전송하고 WAS의 처리 결과를 다시 client에게 전달한다.
    • request에 따라 동적으로 달라지는 컨텐츠는 WAS에 의해 처리된다.
  • ex) Apache, Nginx, IIS 등..

# WAS: Web Application Server

  • HTTP 프로토콜을 기반으로 client의 동적 컨텐츠에 대한 request를 서비스하는 서버, 프로그램
  • 즉, 동적 웹 프로그래밍을 위한 미들웨어의 한 종류.
  • ex) Tomcat, Jeus, JBoss 등..

# Web Container (:= Servlet Container)

  • JSP/Servlet등 Server-side기술을 이용해 client에 동적 컨텐츠를 제공하기 위한 WAS의 구성 요소
  • Servlet의 생명주기 관리. 즉, WAS내부에서 개발자 대신 servlet을 관리하고, servlet이 web server와 통신할 수 있도록 API를 제공한다.
  • URL과 특정 servlet을 매핑하여 request, response객체를 생성, 관리한다.

# Servlet(서블릿)

  • Servlet = Server application let(한조각), 즉 서버에서 실행되는 작은 프로그램 조각을 의미.
  • Web programing에서 Client의 request를 처리하고, 처리 결과를 다시 Client에 전송하는 역할.
  • Java programing을 통해 웹페이지를 동적으로 생성한다.

# 동작과정

 

  1. Client는 Web server로 request를 보낸다.
  2. Servlet이 포함된 WAS는 servlet container로 request를 전달한다..
  3. Servlet container는 각 request를 servlet에 전달한다.
  4. Servlet내의 service 메소드가 로드되고, 다시 servlet은 container에 response를 전달한다.
  5. Servlet container는 해당 response를 web server에 전달한다.
  6. Web server는 이를 client에 보낸다.

Springboot -동작원리