웹 서버, 웹 애플리케이션 서버

SHByun·2023년 1월 18일
0

강의 chap1-1


웹 서버, 웹 애플리케이션 서버

1. http

  • 웹은 모두 http 기반으로 통신한다.
  • 클라이언트가 url -> 인터넷을 통해 서버로 전달 -> 서버에서 http 전송해줌
  • 거의 모든 형태의 데이터는 http 프로토콜을 사용한다.

2. 웹 서버(Web Server)

  • http 기반으로 동작한다.
  • 정적 리소스(정적 html, css, js, 이미지, 영상) 제공, 기타 부가기능 제공한다.
  • 정적인 파일들을 서빙하는 것이다. 즉, 다르게 변경 불가능하다.
  • 예) NGNX, APACHE

3. 웹 애플리케이션 서버(WAS – Web Application Server)

  • http 기반으로 동작한다.
  • 웹 서버 기능 포함 + 정적 리소스 제공 가능
  • 특이사항) 사용자의 요청에 따라 프로그램 코드를 실행해서 애플리케이션 로직을 수행할 수 있다.
  • 예) Tomcat, Jetty, Undertow

4. Web Server와 WAS 차이

  • 웹 서버는 정적 리소스 제공, WAS는 애플리케이션 로직까지 실행할 수 있다.
  • 사실 플러그인 설치를 통해 웹 서버도 프로그램 실행 기능을 포함할 수 있다.
  • 자바는 서블릿 컨테이너 기능을 제공하면 WAS이다.
  • WAS는 애플리케이션 코드를 실행하는데 더 특화되어 있다.

5. 웹 시스템 구성(안 좋은 예)

  • WAS, DB
  • WAS가 너무 많은 역할(애플리케이션 로직, 정적인 리소스 등)을 담당하면 서버에 과부하가 올 수 있다.
  • 중요) 시스템적으로 정적 리소스는 값이 싸다. 하지만 애플리케이션 로직은 비싸다.
  • WAS가 만약 장애가 발생하면 오류 화면도 노출할 수 없다.(웹 서버에 접근조차 안 된다.)

6. 웹 시스템 구성

  • Web Server를 앞에다 두고 정적 리소스를 앞에서 다 처리한다.
  • 동적인 리소스 처리가 필요하면 WAS에 요청해서 해결한다.
  • WAS는 중요한 애플리케이션 로직을 처리하는 것에만 전담시킬 수 있다.

  • 효율적인 리소스 관리가 가능해진다.
  • 정적 리소스가 많이 사용되면 WEB 서버 증설하고 애플리케이션 리소스가 많이 사용되면 WAS를 증설하면 된다.

  • 정적 리소스만 제공하는 Web Server는 잘 죽지 않는다. 하지만 WAS는 잘 죽는다.
  • WAS, DB 장애가 일어나도 Web Server가 오류 화면을 제공할 수 있다.(오류화면 HTML을 보여준다.)

출처

인프런 강의 - 김영한
스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-mvc-1/dashboard

profile
안녕하세요

0개의 댓글