WS(Web Server) 란
웹 서버(Web Server)는 클라이언트(주로 웹 브라우저)로부터 HTTP 요청을 받아서 정적인 콘텐츠(HTML 파일, 이미지, CSS, JavaScript 파일 등)를 제공하는 서버 소프트웨어이다. 주로 정적인 웹 페이지를 제공하는 데 사용되며 대표적인 웹 서버로는 Apache HTTP Server, Nginx가 있다.
이러한 웹 서버의 특징은 다음과 같다.
- HTTP 요청 처리
클라이언트로부터의 HTTP 요청을 받아들이고 이에 대한 응답을 반환한다. - 정적 콘텐츠 제공
정적인 파일(HTML, 이미지, CSS, JavaScript 등)을 클라이언트에게 제공한다. - 리버스 프록시
요청을 다른 서버(ex. WAS)로 전달하여 처리 결과를 클라이언트에게 반환할 수 있다. - 로드 밸런싱
여러 서버에 트래픽을 분산시켜 시스템의 성능과 안정성을 향상시킬 수 있다.
WAS(Web Application Server) 란
웹 어플리케이션 서버(Web Application Server)는 동적인 콘텐츠(ex. JSP)를 생성하여 제공하는 서버 소프트웨어이다. 주로 클라이언트의 요청에 따라 데이터베이스와 상호작용하거나 비즈니스 로직을 처리하여 동적인 웹 페이지나 서비스를 제공한다. 대표적인 WAS로는 Apache Tomcat, JBoss (WildFly) 가 있다.
이러한 WAS의 특징은 다음과 같다.
- 동적 콘텐츠 생성
클라이언트의 요청에 따라 동적인 콘텐츠(ex. JSP)를 생성한다. 예를 들어 데이터베이스에서 데이터를 가져와 웹 페이지에 동적으로 표시하는 등의 작업을 수행한다. - 웹 서버 기능 보유
WAS는 기본적으로 웹 서버의 기능도 포함하고 있다. 이는 정적인 콘텐츠(HTML 파일, 이미지, CSS, JavaScript 파일 등)를 제공하는 기능을 포함한다. 또한 HTTP 요청을 처리하고, SSL/TLS 보안 설정을 지원하며 기본적인 세션 관리와 리소스 관리 기능을 제공한다. - 프록시 기능이 없음
WAS는 자체적으로 리버스 프록시 기능을 제공하지 않는다. 대신 웹 서버(Nginx, Apache HTTP Server 등)와 연동하여 프록시 기능을 구현해야 한다.
WS와 WAS를 모두 사용한 웹 서비스 구현
앞서 설명했듯이 WAS는 WS의 기능을 포함하고 있다. 그렇다면 WAS만 가지고 웹 서비스를 구현하는 것이 더 효율적인 것처럼 보인다. 하지만 WS와 WAS를 모두 사용하여 웹 서비스를 구현하면 다음과 같은 장점이 있다.
- 역할 분리로 인한 효율성 극대화
웹 서버는 정적 콘텐츠(HTML, CSS, 이미지 등)를 제공하고, WAS는 동적 콘텐츠를 생성한다. 이를 통해 각 서버가 최적화된 작업을 수행하여 시스템 성능을 향상시킬 수 있다. - 성능 및 확장성
여러 WAS를 하나의 웹 서버에 연결하여 로드 밸런싱을 구현할 수 있다. 이 방식으로 트래픽을 분산시키며, 성능 향상이 필요할 때 WAS만 추가하여 수평적 확장이 가능하다. - 보안 강화
웹 서버가 리버스 프록시 역할을 하여 외부로부터 WAS를 숨길 수 있다. 이를 통해 직접적으로 로직을 처리하는 WAS를 보호할 수 있다.
'Programming' 카테고리의 다른 글
메시지 지향 미들웨어, 메시지 브로커, 메시지 큐 (0) | 2024.08.26 |
---|---|
Web Socket (6) | 2024.07.13 |
Forward Proxy, Reverse Proxy (0) | 2024.07.12 |
CSRF(Cross-Site Request Forgery) (0) | 2024.07.11 |
XSS(Cross-Site Scripting) (0) | 2024.07.11 |