1. 웹서버(WS; WebServer)
서버-클라이언트의 개념을 알고 있다면, 웹서버(WS)는 웹 환경에서 서비스를 제공하는 주체이고 웹클라이언트는 서비스를 요청하고 제공받는 주체라는 것을 알 수 있다.
웹서버에 대해서 좀더 구체적으로 살펴보자면, 웹 클라이언트가 웹브라우저 URL를 통해 HTTP 요청을 했을 때, 웹서버는 해당 요청을 받아 HTML, CSS, JS과 같은 정적인 콘텐츠를 제공하는 역할을 한다.
*대표적인 웹서버는 Nginx, Apache, IIS(windows전용 웹서버)가 있다.
2. 웹 애플리케이션 서버(WAS; WebApplicationServer)란?
웹 애플리케이션 서버는 웹서버와 동일하게 HTTP 통신을 하며, 정적인 콘텐츠를 제공한다. 하지만 추가적으로 동적인 콘텐츠를 제공할수 있다는 측면에서 차이점이 있다. 예를 들어 사용자의 접근관리나 DB에서 데이터를 조회하는 것은 웹서버는 불가능하고, WAS가 가능하다.
*대표적인 웹 애플리케이션 서버는 Tomcat이 있다.
정리하자면, 웹서버는 정적 콘텐츠를 제공하고 웹 애플리케이션 서버는 정적, 동적 콘텐츠를 모두 제공한다.
3. WS + WAS 구조
하지만 효율적인 웹 서비스 아키텍처를 구성하기 위해 WS - WAS - DB구조를 사용한다.
물론 WAS 혼자서 정적, 동적 콘텐츠를 제공할 수 있지만, 혼자서 처리하는 만큼 처리 속도가 느려진다는 문제가 발생한다.
따라서 정적인 콘텐츠를 웹서버가 처리하고, 동적인 콘텐츠는 웹 애플리케이션 서버가 수행하도록 하여 서버의 부하를 줄일 수 있다.
참고자료
- https://yozm.wishket.com/magazine/detail/1780/
- https://www.youtube.com/watch?v=70bzGTx-BHo
- https://velog.io/@ssssujini99/Web-Web-Server%EC%99%80-Was%EC%9D%98-%EC%B0%A8%EC%9D%B4