Java&Web

[WEB] Web Server와 WAS

프로그래민 2020. 12. 17. 15:39
반응형

Web Server란?

개념

  • 하드웨어적 의미로는 Web Server가 설치되어 있는 컴퓨터
  • 소프트웨어적 의미로는 클라이언트의 요청을 받아 정적 컨텐츠(image, html, css, javascript 등)를 제공하는 서버

기능

  • HTTP 프로토콜을 기반으로 하여 클라이언트 요청에 따라 서비스를 담당
  • 클라이언트의 요청이 정적 컨텐츠라면 그에 맞는 정적 컨텐츠를 클라이언트에게 응답
  • 클라이언트의 요청이 정적 컨텐츠가 아니라면 WAS에게 요청을 전달 및 WAS의 응답을 클라이언트에게 전달
  • 컨텐츠 압축
  • HTTPS 지원
  • Web Server 메모리 캐시

종류 : Apache Web Server, Nginx, IIS(Microsoft), Google Web Server

 

WAS란?

개념

  • Web Appliaciton Server로써 Web Server + Web Container의 개념
  • 클라이언트의 요청을 받아 DB조회나 비지니스 로직 처리를 요구하는 동적 컨텐츠(JSP, Servlet 등)를 제공하는 서버
  • Web Container또는 Servlet Container라고도 불림
    (Container : JSP, Servlet을 실행시킬 수 있는 소프트웨어)

기능

  • Application의 실행 환경 제공 및 DB 접속 기능 제공
  • 여러 트랜잭션 관리 기능
  • 비지니스 로직 처리 기능
  • Web Service 플랫폼으로써의 역할

종류 : Tomcat, JBoss, Jeus, Jetty, WebLogic 

 

Web Server와 WAS

WAS는 정적 컨텐츠를 처리하는 Web Server와 동적 컨텐츠를 처리하는 Web Container로 이루어져 있다. 따라서 WAS만으로 컨텐츠들을 처리 할 수 있지만 일반적으로는 WAS 앞에 Web Server를 따로 두고 사용한다. 자원 이용의 효율성 및 장애극복, 배포 및 유지보수 편의성면에서 다음과 같은 장점이 있다.

  • 기능을 분리하여 서버 부하방지 - Web Server(정적 컨텐츠), WAS(동적 컨텐츠) 를 분리함으로써 WAS의 부담을 줄임
  • 보안 강화 - Web Server를 이용하여 WAS의 설정 파일 노출 방지 가능
  • 여러 WAS를 운영 가능 - 로드 밸런싱, fail over, fail back, 무중단 운영 등을 여러 WAS를 통해 운영 가능

 

Web Server와 WAS의 동작과정

  1. 클라이언트로 부터 들어온 HTTP 요청을 Web Server가 받음
  2. Web Server는 클라이언트의 요청을 WAS에게 전달
  3. WAS는 관련된 Servlet을 메모리에 올리고 web.xml을 참조하여 Servlet에 대한 Thread 생성
  4. Thread는 Servlet에서 service() 호출 후 로직처리
  5. 로직이 처리된 동적 페이지를 WAS에 전달, WAS는 Web Server에 전달
  6. Thread 종료

 

출처
victorydntmd.tistory.com/121
taes-k.github.io/2019/05/24/webserver/
jeong-pro.tistory.com/84
gmlwjd9405.github.io/2018/10/27/webserver-vs-was.html

 

반응형