웹 서버(Web Server)
클리이언트로 부터 HTTP 요청을 받아 정적 컨텐츠(HTML, CSS, JavaScript 등)를 제공하는 서버, 프로그램을 말한다.
정적 컨텐츠(Static Content)?
서버에서 별다른 처리 없이 그대로 클라이언트로 전달되는 콘텐츠를 말한다
예를 들어 HTML, CSS, JavaScript, 이미지 파일 등이 해당된다
다른 로직이나 데이터베이스 처리 없이 바로 응답되기 때문에 로딩 속도가 빠르다
모든 접속자에게 동일한 모습을 반환한다
웹 서버의 주요 기능
1. 정적 컨텐츠 제공
- HTML, CSS, JavaScript 등 변경되지 않는 리소스를 그대로 반환한다
- WAS를 거치지 않고 바로 자원 제공한다
- ex) Hello.html 파일을 브라우저에 그대로 보여줌
2. 동적 컨텐츠 연동
- 자체적으로 동적 처리를 하지 않고, WAS나 애플리케이션에 요청을 전달한다
- ex) 클라이언트의 요청(request)를 WAS에 전달, WAS가 처리한 결과를 클라이언트에게 전달(응답, response)한다
대표적인 웹 서버 소프트 웨어
Apache HTTP Server, Nginx, Microsoft IIS, LiteSpeed 등
웹 어플리케이션 서버(WAS: Web Application Server)
클라이언트의 요청에 따라 알고리즘 처리, 비즈니스 로직 수행, DB 조회 등을 통해 동적인 컨텐츠를 제공하는 서버, 프로그램을 말한다

동적 컨텐츠(Dynamic Pages)?
클라이언트의 요청에 맞게 동적으로 만들어진 컨텐츠를 의미한다
사용자의 로그인 정보, 검색 결과 등은 요청에 따라 내용이 달라질 수 있고, 이러한 경우 동적 컨텐츠에 해당한다
WAS의 역할
WAS 는 Web Server + Web Container 로 구성되어 있으며, 웹 상에서 사용하는 컴포넌트(서블릿, JSP 등)를 실행할 수 있도록 해주는 서버이다
쉽게 말하면, WAS 는 웹 서버에서 요청을 받아서, 받은 요청을 웹 컨테이너로 보내어 로직을 수행하고, 다시 수행 결과를 웹 서버를 통해 클라이언트에게 전달해 주는 역할을 한다
클라이언트가 웹 서버에 요청을 보냄 → 웹 서버는 정적 리소스가 아니면 요청을 WAS로 전달 → WAS는 웹 컨테이너를 통해 비즈니스 로직을 처리 → 처리된 결과를 웹 서버에 전달 → 웹 서버는 응답을 클라이언트에게 전달
WAS 의 주요 기능
1. 비즈니스 로직 처리
- 사용자의 요청에 따른 프로그램 로직 수행
- ex) 로그인 검증, 주문 처리, 게시글 작성 등
2. 프로그램 실행 환경과 데이터베이스 접속 기능 제공
- 웹 애플리케이션이 실행될 수 있는 실행 환경(Web Container)을 제공
- JDBC, JPA 등을 통해 데이터베이스와 연동할 수 있도록 지원
3. 여러 개의 트랜잭션 관리
- 여러 작업이 하나의 단위로 처리되도록 보장하는 트랜잭션을 관리
- ex) 결제 처리 시 결제 정보 저장과 재고 차감이 모두 성공해야만 최종 반영
대표적인 WAS
Tomcat, JBoss, Jeus, Web Sphere 등
참고
'TIL' 카테고리의 다른 글
| [25.04.08] TIL - 내부 / 외부 API 구분하는 이유? (0) | 2025.04.08 |
|---|---|
| [25.04.06] TIL - Building a Scalable Notification Service(확장 가능한 알림 서비스 만들기) (0) | 2025.04.06 |
| [25.03.30] TIL - 변수 네이밍 (0) | 2025.03.30 |
| [25.03.29] TIL - 자바 인스턴스 변수 생명주기 확인하기 (0) | 2025.03.30 |
| [25.03.28] TIL - 중앙처리장치, 주기억장치, 보조기억장치 란? (0) | 2025.03.28 |