WAS와 WS의 차이점

컴투루·2023년 1월 18일
0

🌱 WS (Web Server)

HTTP 프로토콜을 기반으로 하여 클라이언트에게 정적인 파일을 제공하기 위한 서버로 가장 앞에서 요청에 대한 처리를 진행한다.

1) 정적인 컨텐츠 제공

  • WAS를 거치지 않고 바로 자원 제공

2) 동적인 컨텐츠 제공을 위한 요청

  • 클라이언트의 요청(Request)을 WAS에 보내고 WAS가 처리한 결과를 클라이언트에게 전달(Response)함
  • 클라이언트는 일반적으로 웹 브라우저를 의미

ex) apache, nginx, gws....


🌱 WAS (Web Application Server)

DB 조회나 다양한 로직 처리를 요구하는 동적인 컨텐츠를 제공하기 위한 서버로 HTTP를 통해 애플리케이션을 수행해주는 미들웨어이다.

WAS = Web Server + Web Container

웹 서버 기능들을 구조적으로 분리하여 처리하고자 제시되었고 주로 DB서버와 같이 분산 트랜잭션, 보안, 메시징, 쓰레드 처리 등의 기능을 처리하는 분산환경에서 사용된다.

1) 프로그램 실행 환경과 DB 접속 기능 제공
2) 여러 개의 트랜잭션 관리 기능
3) 업무를 처리하는 비즈니스 로직 수행

ex) tomcat. jeus, web logic...


🌱 WS는 왜 필요하지?

if... 웹브라우저에 이미지 파일(정적인 컨텐츠)를 보낸다.

정적인 파일은 웹문서가 브라우저로 보내질때 함께 전송되지 않는다.
므라우저는 HTML문서를 먼저 받고 필요한 이미지 파일들을 다시 서버로 요청하면 그때 이미지 파일을 받아온다.

따라서 WS를 통해 정젹인 파일들은 Application Server까지 가지 않고 앞단에서 빠르게 보내진다.

정적 컨텐츠만 처리 가능하도록 기능을 분배하여 서버의 부담을 줄인다.

🌱 WAS는 왜 필요하지?

웹페이지는 정적, 동적 컨텐츠가 모두 존재한다.

사용자의 요청에 맞게 적절한 동적 컨텐츠를 만들어 제공해야하는데 WS만 이용하면 원하는 요청에 대한 결과값을 모두 만들어 놓아야한다.
즉, 자원이 부족해지는 문제가 발생한다.

따라서 WAS를 통해 요청에 맞는 데이터를 DB에서 가져와서 비즈니스 로직에 맞게 그때 그때 결과를 만들어서 제공함으로써 자원을 효율적으로 사용할 수 있다.


🌱 WAS가 WS의 기능을 모두 수행하면?

1) 기능 분리로 서버 부하 방지

  • WAS는 동적 컨텐츠를 제공하기 위해 존재하므로 단순한 정적 컨텐츠는 Web Server에서 빠르게 클라이언트에게 제공하는 것이 좋다.
  • WAS가 정적 컨텐츠 요청까지 처리한다면 부하가 커지고 수행 지연이 일어나면서 페이지 노출시간이 늘어나게 된다.

2) 여러 대의 WAS 연결 가능

  • 여러 개의 서버를 사용하는 대용량 웹 어플리케이션의 경우 Web Server와 WAS를 분리하여 무중단 운영을 위한 장애 극복에 쉽게 대응이 가능하다.
  • 앞단의 WS에서 오류가 발생한 WAS를 사용하지 못하도록 한 후 WAS를 재시작 함으로써 사용자가 불편함 없이 사용하도록 한다.

자원 이용의 효율성 및 장애 극복, 배포 및 유지보수의 편의성을 위해 Web Server와 WAS를 분리한다.

🎈 Web Server를 WAS 앞에 두고 필요한 WAS는 Web Server에 플러그인 형태로 설정하면 효과적


🌳 이렇게 기억하자!

WSWAS
정적동적
정적 컨텐츠만 처리하여 서버의 부담을 줄임로직에 맞게 자원을 생성, 효율적으로 사용
ApacheTomcat

📒참고

웹서버(WS)와 웹어플리케이션서버(WAS)의 차이
[Web] Web Server와 WAS의 차이와 웹 서비스 구조

profile
맘 먹으면 못할 게 없지

0개의 댓글