WEB
Web Server란? WAS란?
긍.응.성
2020. 4. 9. 23:34
반응형
Web Server와 WAS 대해 찾아보고 공부하면서 작성한 글입니다. 내용 중 잘못된 설명이 있다면 짚어주세요~
Web Server와 WAS(Web Application Server)
Web Server
- 클라이언트가 URL을 통해 서버에 페이지를 요청하면 요청을 받아 정적 콘텐츠를 제공하는 서버
- 정적 컨텐츠(Static Pages): 항상 동일한 페이지를 말한다. 주로 같은 URL에 동일한 file content를 반환한다.
- 클라이언트에서 요청이 올 때 가장 앞에서 요청에 대한 처리를 하는 서버이다.
- 클라이언트의 요청을 기다리고 요청에 대한 데이터를 만들어서 응답하는 역할을 한다.
- 대표적인 Web Server로는 Apache, NGINX가 존재한다.
WAS(Web Application Server)
- 대표적인 Web Server로는 Apache, NGINX가 존재한다.
- 클라이언트가 URL을 통해 서버에 페이지를 요청하면 요청을 받아 동적 콘텐츠를 제공하는 서버
- 동적 컨텐츠(Dynamic Pages): 요청의 params, geographical data 등 인자 값에 따라 다르게 만들어진 결과물을 말한다.
- JSP, Servlet 구동 환경을 제공한다.
- 대표적인 WAS로는 Tomcat, JEUS가 존재한다.
Web Server 와 WAS의 차이
- Web Server가 HTTP 요청에 따라 단순히 콘텐츠를 제공한다면, WAS는 추가적인 기능(other program)을 더하여 제공하는 것이다.
- WAS는 Web Server를 포함하고 있을 수 있다.
Web Server 와 WAS를 분리한 이유
한마디로 정리하면 내가 제일 잘하는것은 내가 처리하자
이다.
- (Web Server)정적인 파일들을 인자에 따라 처리하는 WAS를 거치지 않아도 된다. Application Server까지 가지 않고 앞단에서 빠르게 처리할 수 있다.
- (WAS) 요청에 따라 다른 콘텐츠라면 모든 발생 가능한 요청에 대하며 미리 페이지를 만들어 놓기에는 자원적으로 부족하며, 요청에 맞는 데이터를 가져와(DB나 요청에서) 비즈니스 로직에 맞게 결과를 제공할 수 있다.
함께 이용되는 이유
위의 내용으로만 생각하면 WAS는 Web Server의 기능도 모두 수행할 수 있다.
하지만 실제로 많은 어플리케이션 서버는 WAS를 Web Server와 함께 사용한다.
대표적인 이유로는 WAS가 동적인 페이지를 제공하는데 걸리는 시간 동안 정적인 페이지를 제공하는데 걸리지 않기 때문이다.
WAS에서 정적인 페이지또한 제공한다면
-
기능을 분리하여 서버 부하 방지 (제공 속도 Web Server > WAS)
- WAS는 DB 조회 등 페이지를 만들기위한 다양할 로직을 처리하느라 바쁘다. 단순한 정적 콘텐츠를 WAS에서 제공한다면 다른 작업에 사용하는 리소스들로 인해 지연이 생겨날 수 있다. 그러므로 정적 콘텐츠는 Web Server를 두어 빠르게 제공해주는 것이 좋다.
- tomcat 5.5 이상부터는 httpd의 native 모듈을 이용하여 성능이 크게 떨어지지 않는다고한다. 하지만 나눴을 때의 좋은 점은 아래에 더 있다!
-
물리적으로 분리하여 보안 강화
- SSL에 대한 암복호화 처리에 Web Server를 사용한다.
- 공격에 대해 Web Server를 앞단에 두어 중요한 정보가 담긴 DB나 로직까지 (WAS까지) 전파되지 못하게 한다.
-
여러 대의 WAS를 연결 가능 (Load Balancing, 장애극복, 무중단 운영)
- Load Balancing을 위해 Web Server를 사용
- fail over(장애 극복), fall back 처리에 유리
- 대용량 웹 애플리케이션의 경우 Web Server와 WAS를 분리하여 무중단 운영을 위한 장애 극복에 쉽게 대응할 수 있다 (GLSB)..
-
다른 종류의 WAS로 서비스 가능
- java서버, C#서버 php서버 들을 하나를 웹서버를 통해 서비스 가능하다
static 한 데이터와 dynamic 한 데이터를 다루는 양(빈도)에 대하여 고려한다면 둘을 병행할 때 더 좋은 성능을 기대할 수 있다.
web server는 큰 대역폭을 소모하지 않으며 간단한 요청이나 캐싱을 처리할 수 있으며, 남은 자원을 더 복잡한 요청을 처리하는데 이용할 수 있다. 개발자들은 어떠한 요청이 정적인 데이터 혹은 동적인 데이터를 제공하는지 구분하고 있어야 하며, 동적인 데이터를 application server로 넘겨주는 필터링 기술을 이용한다면 더 좋은 성능을 만들어 낼 수 있다.
참고자료
반응형