Application Server vs. Web Server
업데이트:
WAS와 Web Server의 차이
Web Application Server와 Web Server
둘다 이름은 비슷한데 뭐가 다른건지에 대해 정리해보려고 한다
우선 간단한 그림으로 차이점을 알아본다면 다음과 같다
✨static pages, dynamic pages
- static pages
정적인 페이지로 HTML 페이지, 파일, 이미지, 비디오와 같은 항상 동일한 페이지를 반환한다https://example.com/sample.jpg
https://example.com/sample.txt - dynamic pages
동적인 페이지로 request인자에 따라 달라지는 페이지를 의미한다https://example.com/user/1
https://example.com/search?query=korea
✨Web Server
Web Server는 Http 프로토콜을 기반으로, 클라이언트의 요청을 서비스하는 기능을 담당한다
- 정적 컨텐츠 제공
WAS를 거치지않고 바로 자원 제공 - 동적 컨텐츠 제공을 위한 요청 전달
클라이언트 요청을 WAS에 보내고, WAS에서 처리한 결과를 클라이언트에게 전달
Web Server 종류 : Apache, Nginx 등
웹 서버가 필요한 이유
웹서버에서는 정적 컨텐츠만 처리하도록 기능을 분배해서 서버 부담을 줄이기 위함이다
클라이언트가 이미지 파일, 웹 문서(html)을 요청할 때 어플리케이션 서버까지 가지않고 웹서버가 처리해서 빠르게 응답할 수 있다
✨Web Application Server
Web Application Server는 DB 조회, 로직 처리 등 동적인 콘텐츠를 제공하기 위해 만들어진 어플리케이션 서버이다
즉, Http를 통해 어플리케이션, 서비스 등을 수행해주는 미들웨어다
WAS는 웹 컨테이너, 서블릿 컨테이너라고도 불린다
- 역할
웹 서버의 기능들을 구조적으로 분리하여 처리하는 역할을 한다WAS = Web Server + Web Container
Web Application Server 종류 : Tomcat, JBoss 등
어플리케이션 서버가 필요한 이유
WAS를 통해서 요청에 맞는 데이터를 DB에서 가져와 로직 수행 후 그때마다 결과를 생성하고 제공하면서 자원을 효율적으로 사용할 수 있다
정적 콘텐츠(미리 계산되어있는 콘텐츠)를 미리 연산한 후 제공하기에는 자원이 부족하다
따라서 요청이 있을 때 마다 연산 수행 후 결과를 돌려줌으로써 자원을 절약할 수 있다
✨정리
차이점
Web Server | WAS |
---|---|
static content | dynamic content |
http 프로토콜을 통해 content가 전달된다 | http프로토콜을 포함안 다른 프로토콜을 사용해 로직 처리를 제공한다 |
멀티스레딩을 지원하지 않는다 | 멀티 스테딩을 사용해서 여러 요청을 병렬 처리한다 |
왜 WAS가 모든 것을 처리하지 않을까?
WAS(Web Application Server)는 다양한 사용자의 요청에 따른 연산을 처리하는데 집중해야한다
따라서 단순한 정적 컨텐츠들은 Web Server가 대신 처리함으로서 서버 부하를 방지하기 위함이다
정적 컨텐츠를 처리하면서 동적 컨텐츠 처리가 지연될 수 있다 -> 페이지 로딩시간이 길어짐
WAS에서 오류가 발생했을 때 웹 서버에서 오류페이지를 띄우며 WAS를 재시동 할 수 있다
예를들어, ‘서버 오류 시 사용자의 화면에는 오류 안내 페이지가 나타난다’ 의 경우
댓글남기기