√ 시작하기 앞서 필요한 개념
- Static Page & Dynamic Page : Static Page는 Web Server가 경로를 받아 일치하는 File Contents를 로드한다. (JS, Images, Html) 즉 항상 동일한 페이지를 구현하며 Dynamic Page는 Parameter에 맞는 페이지 내용을 구현한다.
√ Web Server
- 정의 :
하드 웨어 : Web Server가 설치되어 있는 컴퓨터
소프트 웨어 : 웹 브라우저 클라이언트로부터 HTTP 요청을 받아 Static Contents를 제공하는 프로그램
- 기능 :
WAS를 거치지 않고 바로 Static Contents를 제공한다.
Static Contents에 대한 Request는 처리하고 Dynamic Request는 WAS로 보낸 뒤 Response를 브라우저에 전달한다.
- 예 : Nginx, Apache Server
√ WAS (Web Application Server)
- 앞서 말한 것과 같이 동적인 컨텐츠에 대해 수행하여 응답하기 위한 Application Server로 HTTP를 통해 컴퓨터 및 장치에 Application를 수행해 주는 미들웨어(Software engine)
- JSP, Servlet을 실행시킬 수 있는 소프트웨어로 Servlet Contatiner + Web Server라고 볼 수 있으며 상황에 따라 Web Server의 역할도 할 수 있다. (Static Contents를 처리하는데 있어 Web Server와 성능 차이는 크게 없다.)
- 주요 기능
프로그램 실행 환경 제공 및 DB 접속 기능
멀티 트랜잭션 처리 기능
주요 비즈니스 로직 수행
- 예 : Tomcat, Jeus, uWSGI
√ 서버 구조
- WAS가 Web Server 역할까지 수행할 수 있기 때문에 일반적으로 아래 3가지 방식으로 이루어 진다.
1. Client - Web Server - DB
2. Client - WAS - DB
3. Client - Web Server - WAS - DB
- 1번의 경우
Web Server 만을 이용하여 구축은 할 수 있지만 이런 경우 사용자의 Request에 대해 미리 다 예측하여 결과값을 세팅해 놓아야 한다.
- 2번의 경우
화면 구현 순서 자체가 Html소스와 함께 Image와 같은 소스가 같이 넘어오지 않고 Html 구현 후에 경로에 맞게 이미지 소스들을 호출하기 때문에 WAS 하나로만 구축할 시엔 Application Server에 2번 접근해야 한다.
- 3번의 경우
위의 경우에 대비하여 WAS와 Web Server간 기능을 분리하여 서버 부하를 방지하고 물리적으로도 분리가 가능하여 보안이 강화된다.
'서버' 카테고리의 다른 글
Webpack부터 Kubernetes까지 (1) - Stream과 Node (0) | 2021.03.11 |
---|---|
Node Express Module (0) | 2021.03.09 |
node js 시작하며 (0) | 2021.03.08 |
[DRF] REST & REST API (0) | 2020.01.19 |
쿠키(Cookie)&세션(Session)&캐시(Cashe) (0) | 2019.11.17 |