웹서버와 WAS서버

3티어 아키텍처

웹 애플리케이션을 개발하고 배포하는 데 사용하는 아키텍처

웹 서버, WAS 서버, 데이터베이스 서버 세 가지 레이어로 구성

웹서버

클라이언트에서 HTTP 요청을 받아 정적인 컨텐츠(html, css, js 등)를 반환하는 역할

정적인 파일들은 미리 웹서버에 저장

동적인 데이터가 필요하지 않을 때 사용

예시 : Apache, Nginx 등

WAS서버(Web Application Server)

클라이언트의 요청에 따라 동적인 데이터를 생성하여 반환

웹 서버와 달리 어플리케이션 로직 수행을 위해 필요한 동적인 컨텐츠 생성, 데이터베이스 연결 및 트랜잭션 관리 등 다양한 작업을 처리

예시 : Tomcat, JBoss, WebLogic 등

차이점

  1. 웹서버는 정적인 파일을 처리하는 데 최적화, WAS는 동적인 데이터 처리를 위해 최적화
  2. 웹서버는 대개 클라이언트와 직접적으로 통신하고, WAS는 웹서버를 통해 클라이언트와 통신
  3. 웹서버는 빠른 응답 시간을 보장하기 위해 캐싱이나 로드밸런싱과 같은 기능을 제공, WAS는 애플리케이션 로직 처리에 최적화 ⇒ 성능면에서 웹서버보다 조금 느릴 수 있.

협업 관계

웹서버와 WAS서버는 협업하여 웹 애플리케이션을 제공

요청 : 클라이언트 ⇒ 웹서버 ⇒ WAS

처리 : WAS ⇒ 웹서버 ⇒ 클라이언트

웹 애플리케이션의 유연성과 확장성 향상

애플리케이션 서버 자원의 확장 및 분리 가능성이 높아짐 ⇒ 애플리케이션의 성능과 안정성을 보장

웹 애플리케이션 관리 및 유지보수 효율적

ex) 웹 서버 : 로드밸런서 ⇒ 웹서버의 부하를 분산

WAS서버 : 업데이트 혹은 유지보수

웹 애플리케이션 효과적 관리, 안정성 및 성능 보장

서브목차