Web Server? WAS?

woonie·2022년 7월 21일
0

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

profile
동료들과 함께하는 개발의 중요성에 관심이 많습니다. 언제나 호기심을 갖고 꾸준히 노력하는 개발자로서 성장하고 있습니다.

0개의 댓글