본문 바로가기

Spring Boot/4. SpringMVC part1

1. Web Application 이란?

현대의 모든 Web Application은 HTTP프로토콜 기반으로 통신을 진행한다.

 

   - HTTP가 처리하는 항목들 -

  • HTML , TEXT, JSON (결국 다 String)
  • 이미지파일, 영상파일 등

Web Server 란

  • 클라이언트가 요청하는 정보를 응답해주는 역할을 한다
  • HTTP기반으로 동작하며,
  • web Server가 응답을 주는 리소스에는 '정적 리소스(HTML, IMAGE 등)' 가 있다
  • ex) Apache, NGINX 등이 있다.

Web Application Server(WAS) 란

  • Web Server와 마찬가지로 클라이언트가 요청하는 정보를 응답해주는 역할을 한다
  • HTTP기반으로 동작하며,
  • web Server가 응답을 주는 정적 리소스를 제공할 뿐만 아니라
  • 프로그램을 실행하는 애플리케이션 로직 수행이 가능하다.
  • 따라서, 동적 HTML을 반환 한다던지, 로직 수행 후 JSON파일을 제공 할 수 있다.
  • 또한 서블릿, JSP, 스프링 MVC도 모두 WAS안에서 동작한다.
  • ex) Tomcat, Jetty, UnderTow등이 있다.

Web Server VS Web Application Server(WAS)

  • Web Server
    • 정적 리소스 (파일)을 처리하는데 용이,
    • 오류화면을 띄우는 기능을 
  • WAS
    • 애플리케이션 프로그램 로직을 처리하는데 용이
  • 서블릿 컨테이너 기능을 제공하면 WAS이다.

보편적인 웹 시스템 구성

  • 정적 리소스는 Web Server가 처리
    • 정적리소스가 많이 사용되면 Web Server를 증설하면된다.
  • 애플리케이션 로직 같은 동적 처리가 필요할 시 Web Server는 WAS에게 해당 요청을 위임시킨다.
    • 애플리케이션 리소스가 많이 요청될 시 WAS를 증설 하면 된다.
  • 요청에 따른 임무 수행 
    • 클라이언트 -- (정적 리소스 요청) --> Web Server --> WAS --> DB 
    • 클라이언트 -- (로직 요청) --> WebServer -- (요청 위임) --> WAS -- > DB
  • 특징
    • 정적 리스소스만 제공하는 Web Server는 잘 죽지 않는다.
    • 애플리케이션 로직이 동작하는 WAS는 Web Serber보다 빈번하게 죽는다.
    • 따라서, WAS 혹은 DB장애시 Web Server가 오류화면을 제공해준다.

'Spring Boot > 4. SpringMVC part1' 카테고리의 다른 글

4. MVC패턴  (0) 2021.06.01
2-3. CSR , SSR  (0) 2021.06.01
2-2 Web 동시요청, 멀티쓰레드  (0) 2021.06.01
2-1. 서블릿(Servlet)  (0) 2021.06.01
0. 개요  (0) 2021.06.01