Web Server
- 웹 브라우저 클라이언트로부터 HTTP 요청을 받아들이고 HTML 문서와 같은 웹페이지를 반환하는 컴퓨터 프로그램
- 클라이언트가 웹 브라우저에 어떠한 페이지 요청을 하면 웹 서버에서 그 요청을 받아 정적 컨텐츠를 제공하는 서버
- 정적 컨텐츠란 HTML, CSS, JavaScript, 이미지, 파일 등 즉시 응답 가능한 컨텐츠를 의미한다.
- 웹 서버가 동적 컨텐츠 요청을 받는 경우, WAS에게 해당 요청을 넘겨주고 WAS에서 처리한 결과를 다시 클라이언트에게 전달해주는 역할을 한다.
- 대표적인 웹 서버엔 Apache 가 있다.
WAS
- 인터넷 상에서 HTTP 프로토콜을 통해 사용자 컴퓨터나 장치에 애플리케이션을 수행하주는 미들웨어이다
- 주로 동적 서버 컨텐츠를 수행하는 것으로 웹 서버와 구별이 되며, 주로 데이터 베이서 서버와 같이 수행한다.
- WAS는 웹 서버와 웹 컨테이너가 합쳐진 형태로, 웹 서버 단독으로는 처리할 수 없는 데이터베이스의 조회나 다양한 로직 처리가 필요한 동적 컨텐츠(JSP, ASP, PHP)를 제공한다.
- 덕분에 사용자의 다양한 요구에 맞춰 웹 서비스를 제공할 수 있다.
- WAS는 JSP, Sevlet 구동환경을 제공해주기 때문에 웹 컨테이너 혹은 서블릿 컨테이너라고도 불린다.
- 대표적인 WAS 종류엔 Tomcat이 있다.
Wev Service Architecture
웹 어플리케이션은 요청 처리 방식에 따라 다양한 구조를 가질 수 있다.
- 클라이언트(사용자) -> WebServer -> DB
- 클라이언트 -> WAS -> DB
- 클라이언트 -> WebServer -> WAS -> DB
WebServer 와 WAS를 나누는 이유
이론대로라면 WAS의 경우 웹서버 + 웹컨테이너의 개념이기 때문에 웹서버가 없더라도 웹서버의 역할을 동시에 수행할 수 있다.
그런데 왜 나눠서 사용할까?
1 데이터 처리 방식
- 위의 설명대로 웹서버는 정적 컨텐츠를, WAS는 동적 컨텐츠를 처리한다.
- 만약 부하가 적은 웹서비스라면 두가지 요청을 WAS 하나로 다 처리해도 되지만, 부하가 많다면 빠른 시간에 처리할 수 있는 정적컨텐츠를 WAS에서 처리하는 것은 비효율적이다.
- 웹서버를 WAS 앞에 두고 필요한 WAS들을 WebServer에 플러그인 형태로 설정하면 더 효율적인 분산처리가 가능하다.
2. 보안상의 이유
- 사용자들에게 WAS는 공개될 필요가 없다.
- WAS의 경우 DB서버에 대한 접속 정보가 있기때문에 외부로 노출될 경우 보안상 문제가 될 수 있다.
- 이러한 이유로 웹 서버의 경우 DMZ구간에 위치하고 WAS는 내부망에 위치시켜 보안을 유지할 수 있다.
Tomcat vs Apache Tomcat
- 위에서 언급한 대로 웹 서버의 대표는 Apache, WAS의 대표는 Tomcat이 있다.
- Tomcat은 Apache Tomcat 이라는 이름으로 많이 사용되는데, 이유는 Tomcat5.5 버전부터 정적 컨텐츠를 처리하는 기능이 추가되어 이 기능이 순수 Apache를 사용하는 것에 비해 성능적 차이가 거의 없으며 Tomcat이 Apache의 기능을 포함하고 있기 때문이다.
[ 참고 자료 ]
- https://codechasseur.tistory.com/25
- https://goldsony.tistory.com/37
- https://www.youtube.com/watch?v=NyhbNtOq0Bc
'Coding > 기타' 카테고리의 다른 글
[ DataBase ] RDB, NOSQL, In-Memory (0) | 2023.01.22 |
---|---|
ChatGPT !! 엄청나다 !! (0) | 2023.01.10 |
HTTP 이해 (0) | 2022.12.06 |
기술매니저님 추천 사이트 ( Spring 관련 ) (0) | 2022.12.02 |
RESTful API 설계 가이드 (0) | 2022.12.01 |