본문 바로가기

CS

Web Server? WAS?

728x90

Spring을 처음 공부하면서, 프로젝트를 진행하면서 자연스럽게 Tomcat을 사용하게 되었다. 처음 Tomcat을 사용하면서 WAS(Web Application Server) 라는 것은 알고 있었고 프로젝트를 진행하면서 HTTPS와 무중단 배포를 구현하면서 NginX를 사용했는데 NginX는 웹 서버라고 알게되었다.
처음에 서버면 같은 서버지 왜 WAS와 Web Server로 나뉠까? 라는 궁금증이 생겼고 미루었던 내용을 정리해보려고 한다.

1. web Server

  • 정적인 페이지를 표현하기 위한 서버로 클라이언트로 부터 HTML, JPG, GIF 등 과 같은 문서,이미지를 HTTP프로토콜을 통해 웹 브라우저로 제공하는 서버
  • 정적 데이터를 처리하며 다양한 동적 데이터를 요청하게 되면 WAS서버로 데이터를 넘겨주게 된다.
  • 예시 : 회사 홈페이지(별도 데이터를 입력 받을 필요가 없고 만들어둔 HTML만을 그대로 보여주면 된다.)
  • 종류 : Apache web server, IIS(MS), Nginx web server, Zeus webserver 등

2. WAS(Web Application Server)

  • 동적인 페이지를 표현하기 위한 서버
  • 웹 서버의 부하를 분산하기 위해 나온 서버이며 동시에 웹 서버와 어플리케이션 서버를 동시에 수행하는 서버
  • 예시 : 쇼핑몰에서 상품 검색
  • 종류 : Tomcat, Web Logic, Web Sphere, jeus, JBOSS 등

3. 웹 서버(Web Server)와 WAS를 구분하는 이유?

  • 위에서 WAS는 웹 서버와 어플리케이션 서버를 동시에 수행하는 서버라고 정리해놨다. 그러면 WAS만 써도 되겠네? 라고 생각할 수 있지만 사용 목적이 다르다.
  • Web Server는 이미지나 단순 문서인 정적 데이터만 처리하기에 해당 리소스의 제공은 Web Server를 통하면 WAS를 사용하는 것 보다 빠르고 안정적이다.
  • 반면 WAS는 DB조회 및 다양한 로직을 처리하는데 집중해야 한다. 그렇기에 단순한 정적 데이터는 웹 서버에 맡기며 기능을 분리시켜 서버 부하를 방지한다.
    • 만약 WAS가 정적 데이터까지 처리 한다면 부하가 커지고 동적 데이터를 처리하는데 보다 더 많은 시간이 소요되므로 페이지 노출 시간이 늘어나는 문제가 발생하여 비효율적이다.



* 참고

https://www.youtube.com/watch?v=IBnu-VSaln0
https://kikikimoong.tistory.com/entry/webServer%EC%99%80-was-%EC%B0%A8%EC%9D%B4%EC%A0%90?category=685011
https://velog.io/@bky373/Web-%EC%9B%B9-%EC%84%9C%EB%B2%84%EC%99%80-WAS
https://codechasseur.tistory.com/25
https://gmlwjd9405.github.io/2018/10/27/webserver-vs-was.html

'CS' 카테고리의 다른 글

API GateWay  (0) 2024.04.18
JVM 메모리 구조?  (0) 2024.04.18
가비지 컬렉션, 컬렉터(Garbage Collection)  (0) 2024.04.17
[자료구조] 스택 (Stack), 큐(Queue)  (0) 2024.04.17
메모리 구조(Stack , Heap)  (0) 2024.04.17