본문 바로가기

Programming/Server

[Server] WebServer와 Web Application Server (WAS)

 

WebServer는 정적 콘텐츠(HTML, JavaScript, CSS 등)을 전달하고,
Web Application Server는 동적 컨텐츠를 전달한다.

1. WebServer의 역할

웹서버는 브라우저(클라이언트)의 요청을 받고 응답하는 역할을 합니다.

 

 

웹 서버가 응답할 수 있는 것은 HTML, JavaScript, Css 등과 같은 정적 콘테츠 입니다.

웹 서버는 브라우저로부터 요청(URL)이 오면 요청된 경로를 찾아가 해당 파일을 반환하게 됩니다.

 

이 때 요청과 응답은 HTTP 프로토콜 형식으로 주고 받습니다.

HTTP 프로토콜은 클라이언트와 서버간의 통신을 위한 양식을 말합니다. 서로 다른 양식을 사용한다면 서로가 보낸 정보의 의도를 서로가 알 수 가 없겠지요.

 

2. Web Application Server

HTML과 같은 내용이 변하지 않는 파일들은 실시간으로 변화되는 콘텐츠를 반영하지 못합니다. 

Web Application Server(줄여서 WAS)는 실시간으로 동적으로 변화할 수 있는 콘텐츠 즉, 동적 콘텐츠를 제공하는 역할을 합니다.

 

브라우저로부터 요청받은 콘텐츠
정적 콘텐츠일 경우 Web Server가 직접 응답하고
동적 콘테츠일 경우 Web Server는 WAS에 요청을 위임합니다.
WAS는 동적콘텐츠 제공 뿐만 아니라 인증이나 비즈니스 로직을 수행하기에 DB와 연동해서 동작합니다.

 

3. WAS의 요청 처리 과정

WAS의 요청 처리 과정

WAS는 웹 서버로부터 넘어온 HTTP 요청을 처리하고 응답을 생성해야합니다.

이 작업을 Servlet이 수행하게 됩니다.

 

Servlet은 Java 웹 어플리케이션 환경에서 클라이언트의 요청을 받아 처리하고
HTML, JSON과 같은 형식의 데이터를 구성, 동적 페이지를 만들어 응답해주는 역할입니다.

WAS는 이러한 Servlet을 생성하고 관리하는 Servlet Container 입니다.

3. WAS = Web Server + WAS

톰캣과 같은 WAS는 웹 서버를 내장하고 있어서 

대부분의 WAS는 웹 서버의 역할 도 수행할 수 있습니다.

4. WebServer 와 WAS의 분리

 

WAS가 정적 콘텐츠(HTML,CSS,JS)도 응답하고, 동적 콘텐츠(추천 기사 목록 JSON목록)도 불러오게 되면서 

WAS의 부담은 커진 것을 확인할 수 있습니다.

 

 

그래서 대규모 서비스의 경우 웹 서버와 WAS를 분리해야합니다.

단순 정적 콘텐츠는 웹 서버가 , WAS는 복잡한 로직을 수행에만 집중하여 수행할 수 있습니다.

 

 

 

또한, 이렇게 분리를 하면

하나의 웹 서버에 여러개의 WAS 연동 시 로드 밸런싱을 할 수 있고,

서버 증설 시에도 리소스가 많이 사용되는 쪽의 서버만 증설할 수 있는 이점이 있습니다.

로드 밸런싱

 

 

출처 

WAS 유튜브 참고

'Programming > Server' 카테고리의 다른 글

[Server] ~/.bashrc  (0) 2025.01.09
[Server]Jboss  (0) 2024.12.10
[Server] 빌드와 배포  (0) 2024.09.29
[Server] Docker란?  (1) 2024.09.19
[Server] CORS  (1) 2024.09.15