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

웹 서버(Web Server)

  • HTTP 기반으로 동작
  • 정적 리소스 제공, 기타 부가기능
  • 정적(파일) HTML, CSS, JS, 이미지, 영상
  • 예) NGINX, APACHE

웹 애플리케이션(Web Application)

  • 웹 서버 기능 포함 + (정적 리소스제공가능)
  • 프로그램 코드를 실행해서 애플리케이션 로직 수행
    • 동적HTML, JSON
    • 서블릿, JSP, 스프링 MVC
  • WAS는 애플리케이션 코드를 실행하는데 더 특화되어 있다.
    예) 톰캣, Jetty, Undertow

웹 시스템 - WEB, WAS, DB

  • 정적 리소스는 웹 서버가 처리
  • 웹 서버는 애플리케이션 로직같은 동적인 처리가필요하면 WAS에 요청을 위임
  • WAS는 중요한 애플리케이션 로직 처리 전담

서블릿 (서블릿 컨테이너)

  • urlPatterns(/hello)의 URL이 호출되면 서블릿 코드 실행
  • HTTP 요청정보를 편리하게 사용할 수 있는 HttpServletRequest
  • HTTP 응답정보를 편리하게 제공할 수 있는 HttpServletResponse
  • 개발자는 HTTP 스펙을 매우 편리하게 사용
  • 톰캣처럼 서블릿을 지원하는 WAS를 서블릿 컨테이너라고함
  • 서블릿 컨테이너느 서블릿 객체를 생성, 초기화, 호출 종료하는 생명주기 관리
  • 서블릿 객체는 싱글톤으로 관리
    • 최초 로딩 시점에 서블릿 객체를 미리 만들어두고 재활용
    • 공유변수 사용 주의
    • 모든 고객요청은 동일한 서블릿 객체 인스턴스에 접근
  • JSP도 서블릿으로 변환되어서 사용
  • 동시 요청을 위한 멀티쓰레드 처리 지원

댓글

Designed by JB FACTORY