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는 웹 서버로부터 넘어온 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 연동 시 로드 밸런싱을 할 수 있고,
서버 증설 시에도 리소스가 많이 사용되는 쪽의 서버만 증설할 수 있는 이점이 있습니다.
출처
'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 |