🚩 목차
🔎 정적 페이지 vs 동적 페이지
정적 페이지
정의
- 서버에 저장된 파일(HTML, CSS, JS 등)을 그대로 클라이언트에 반환하는 페이지
특징
- 요청할 때마다 항상 동일한 내용을 반환함
- 서버의 데이터베이스와 상호작용하지 않으며, 파일이 수정되지 않는 한 내용이 변하지 않음
- 일반적으로 빠르게 로드되며, 서버 부하가 적음
동적 페이지
정의
- 클라이언트의 요청에 따라 서버에서 데이터나 콘텐츠를 실시간으로 생성하여 반환하는 페이지
특징
- 사용자나 요청에 따라 다른 내용을 반환할 수 있음
- 데이터베이스와의 연동을 통해 실시간으로 정보를 가져오거나 업데이트할 수 있음
- 서버에서 처리하는 로직이 필요하므로 상대적으로 더 많은 서버 자원을 소모할 수 있음
🔎 웹 서버
📷 사진

👉🏻 설명
정의
- HTTP 요청을 수신하고 해당 요청에 따른 정적 콘텐츠(HTML, 이미지, CSS 파일 등)를 클라이언트에 보내는 서버
특징
- 클라이언트의 요청에 대해 빠르게 응답함
- HTTP 및 HTTPS 프로토콜을 사용하여 통신함
- 로드 밸런싱 및 캐싱 기능을 통해 성능을 최적화할 수 있음
ex
🔎 웹 어플리케이션 서버(WAS)
📷 사진


👉🏻 설명
정의
- 클라이언트의 요청을 받아 서버의 로직에 따라 DB에 데이터를 반환하고 기록하며 동적 콘텐츠를 생성하는 서버
특징
- 클라이언트의 요청에 따라 동적으로 데이터를 생성하고 반환함
- 데이터베이스와 상호작용하여 실시간으로 정보를 처리함
- 프로그래밍 언어(ex: Java, Python, PHP 등)을 사용하여 서버 측 로직을 처리하여 복잡한 비즈니스 로직을 구현할 수 있음
- 세션 관리 및 사용자 인증 기능을 제공함
- 웹 서버와 연동하여 정적 콘텐츠와 동적 콘텐츠를 함께 제공할 수 있음
- WAS내에도 웹 서버를 내장하고 있음
예시
🔎 웹 서버와 웹 어플리케이션 서버(WAS)
- 웹 어플리케이션 서버(
WAS
)내에도 웹 서버를 내장하고 있으나, 웹 서버 - 웹 어플리케이션(WAS
) 조합을 주로 사용함
📷 사진

👉🏻 이유
- 웹 서버 - WAS 구조로 두어 서버 부하를 방지할 수 있음
- 웹 서버 - 정적 콘텐츠 전용 제공
- WAS - 동적 콘텐츠 제공
→ 부하를 분산할 수 있으며, 정적 콘텐츠는 WAS까지 가지 않아도 빠르게 제공할 수 있음
- 여러 대의
WAS
를 로드 밸런싱할 수 있음
→ 하나의 WAS
가 처리해야 하는 요청을 여러 WAS
에서 처리할 수 있도록 웹 서버에서 로드 밸런싱할 수 있음
WAS
서버를 헬스 체크할 수 있음
- **여러 대의
WAS
서버를 둔 경우,**웹 서버에 헬스 체크를 설정 해준다면, 주기적으로 요청을 보냄으로써 해당 **WAS
**에서 정상 운영중인지 체크 할 수 있음
- 보안 강화
- 리버스 프록시를 통해 실제 서버를 외부에 노출시키지 않아 보안을 강화할 수 있음
👨🏻🏫 정리
구분 |
웹 서버 |
웹 어플리케이션 서버(WAS) |
정의 |
HTTP 요청을 수신하고 해당 요청에 따른 정적 콘텐츠(HTML, 이미지, CSS 파일 등)를 클라이언트에 보내는 서버 |
클라이언트의 요청을 받아 서버의 로직에 따라 DB에 데이터를 반환하고 기록하며 동적 콘텐츠를 생성하는 서버 |
특징 |
**- 클라이언트의 요청에 대해 빠르게 응답함 |
|
- HTTP 및 HTTPS 프로토콜을 사용하여 통신함
- 로드 밸런싱 및 캐싱 기능을 통해 성능을 최적화할 수 있음** | **- 클라이언트의 요청에 따라 동적으로 데이터를 생성하고 반환함
- 데이터베이스와 상호작용하여 실시간으로 정보를 처리함
- 프로그래밍 언어(ex: Java, Python, PHP 등)을 사용하여 서버 측 로직을 처리하여 복잡한 비즈니스 로직을 구현할 수 있음
- 세션 관리 및 사용자 인증 기능을 제공함
- 웹 서버와 연동하여 정적 콘텐츠와 동적 콘텐츠를 함께 제공할 수 있음
- WAS 내에도 웹 서버를 내장하고 있음** |
| 예시 | 아파치, 제티, Nginx 등 | 톰캣, JBoss 등 |
| | | |
📖 참고자료
- Baledung - 웹 서버와 웹 어플리케이션 서버
Application Server vs. Web Server | Baeldung on Computer Science