
Web Server, WAS(Servlet 기반) 웹 서비스 아키텍쳐

웹 서버(Web Server)
- 개념
- 하드웨어: 웹서버가 설치되어 있는 컴퓨터
- 소프트웨어: 클라이언트(웹 브라우저, chrome) 로부터 HTTP 요청을 받아 정적인 페이지(.html, .css, .jpeg) 등을 제공하는 프로그램
- 기능
- HTTP 프로토콜을 기반으로 하여 클라이언트의 요청에 대해 서비스하는 기능 담당
- 기능1
- 단순 텍스트와 링크, 이미지로 구성된 정적 컨텐츠(페이지) 제공 - 공식 기술 문서 등
- WAS를 거치지 않고 바로 자원 제공
- 기능2
- 동적 컨텐츠 제공을 위한 요청을 WAS로 전달
- 클라이언트의 요청을 WAS로 보내고, WAS가 처리한 결과를 클라이언트에 응답
- WS 의 예
웹 애플리케이션 서버(Web Application Server)
- 개념
- DB조회나 다양한 로직 처리를 요구하는 동적 페이지 제공을 위해 만들어진 애플리케이션 서버
- HTTP 요청을 처리하는 미들웨어(소프트웨어)
- 기능
- DB접속 기능
- 요청을 처리하는 비즈니스 로직 수행
- +WS의 기능(정적 파일 제공 등) 도 수행 가능하므로 규모가 작은 서비스에서는 WAS 만 두고 서비스할 수도 있음
- WAS의 예
- Tomcat(가장 많이 사용), JBoss, ...
정적 페이지(Static Page), 동적 페이지(Dynamic Page)
- 정적 페이지
- 특징
- 서버에 미리 저장된 파일(html, image, javascript, css 파일 등)이 그대로 전달되는 페이지
- 서버는 사용자의 요청에 해당하는 웹 페이지를 리턴
- 사용자는 서버에 저장된 데이터가 변하지 않는 한 고정된 웹 페이지를 봄
- 장점
- 빠름: 요청에 대한 정적 파일만 제공하면 되므로 추가 작업이 필요없음
- 낮은 비용: 웹 서버만 구축하면 서비스 가능
- 단점
- 예시
- 동적 페이지
- 특징
- 서버에 있는 데이터들이 가공처리 된 상태로 전달되는 웹 페이지
- 서버는 사용자의 요청을 해석하여 데이터를 가공한 후 생성된 웹 페이지를 리턴
- 사용자의 상황, 시간, 요청에 따라 다양한 웹 페이지를 볼 수 있음
- 장점
- 다양한 정보를 조합하여 동적으로 제공 가능(좋은 사용자 환경 제공)
- 단점
- 상대적 느림: 사용자에게 웹 페이지를 전달하기 전에 처리하는 작업 필요
- 추가 비용: 웹 서버 외에 추가 작업을 처리할 웹 애플리케이션 서버도 필요
- 예시
- github(그룹에 속한 repository를 동적으로 조회해서 페이지를 구성해서 보여줌) - github.com/LandvibeDev
- 인스타그램(유저 정보, 시간 등에 따라 다양한 컨텐츠 확인 가능)
WS 와 WAS 구분 하는 이유
Web Server가 필요한 이유?
- 클라이언트(웹 브라우저)에 이미지 파일(정적 컨텐츠)을 보내는 과정을 생각해보자.
- 이미지 파일과 같은 정적인 파일들은 웹 문서(HTML 문서)가 클라이언트로 보내질 때 함께 가는 것이 아니다.
- 클라이언트는 HTML 문서를 먼저 받고 그에 맞게 필요한 이미지 파일들을 다시 서버로 요청하면 그때서야 이미지 파일을 받아온다.
- Web Server를 통해 정적인 파일들을 Application Server까지 가지 않고 앞단에서 빠르게 보내줄 수 있다.
- 따라서 Web Server에서는 정적 컨텐츠만 처리하도록 기능을 분배하여 서버의 부담을 줄일 수 있다.
WAS가 필요한 이유?