1. 웹 서버(Web Server)
- 주로 정적 콘텐츠(HTML 파일, 이미지, CSS, JavaScript 등)를 제공합니다.
- 클라이언트로부터 HTTP 요청을 받고, 해당 요청에 맞는 리소스를 반환합니다.
- 동적 콘텐츠를 처리하기 위해 웹 애플리케이션 서버와 협력할 수 있습니다.
- 예를 들어, Apache, Nginx가 웹 서버의 예시입니다.
2. 웹 애플리케이션 서버(Web Application Server)
- 동적인 콘텐츠를 생성하고 실행하기 위한 기능을 제공합니다. [ 동적 html/ rest API(JSON) ]
- 데이터베이스와의 상호 작용, 비즈니스 로직 실행 등을 포함합니다.[서블릿 jsp 스프링 등]
- 예를 들어, Tomcat, Jetty, Undertow등이 예시입니다.
- 둘의 차이점은?
일반적으로 웹서버는 정적 콘텐츠를 처리하고 와스서버는 동적 콘텐츠를 처리하지만,
최근에는 웹 서버와 웹 애플리케이션 서버의 경계가 흐려지고, 특정 기능을 모두 포함하는 통합된 솔루션들이 등장하기도 합니다.
- 실제 서버 구성시에는?
규모가 작은 서버면 Was만 운영 할 수도 있으나, 규모가 큰 서비스라면 WebServer에서 정적인 Html, Css, Js, Image는 처리하고 그외에 애플리케이션 로직이 들어가는 부분은 Was에서 처리한다.
이렇게 분할 시켜놓아야 정적/동적중 어느 리소스가 많이 사용되냐에따라 Web Server나 Was를 각각 상황에 맞게 따로 증설할 수 있다.
또한 Web Server와 Was를 분할시켜놓아야 Was가 Exception이나 error 및 DB관련 오류등으로 죽었을때도 오류화면을 Web server를 통하여 호출할 수 있다.
- 처리 방향은?
클라이언트 - Web Server - Was - DB
'관련_배경_지식' 카테고리의 다른 글
기본_배경_지식 [Hash, JavaVm, x86/x64, PCI, Memory Manager, CacheManager,Process/Thread,window 커널] (1) | 2023.11.23 |
---|---|
Spring WebFlux와 Spring MVC의 비교 (0) | 2023.11.23 |
트랜잭션 스크립트 패턴과 도메인 모델 패턴 (0) | 2023.11.10 |
쿠버네티스란? (0) | 2023.11.10 |
커넥션 풀이란? (0) | 2023.11.10 |