Backend Programming
웹 서버 vs WAS 차이
웹 서버: 정적인 요소를 가지고 있다가 반환
- HTML, CSS, JS, 이미지 등 파일을 그대로 전달
- 단순히 파일 시스템에서 파일을 읽어서 HTTP 프로토콜로 전송
- 예: Live Server (개발용), Apache HTTP Server, Nginx
WAS (Web Application Server): 동적 요청 처리
- DB 연동, 트랜잭션 처리, 다른 시스템과의 통신 등 복잡한 로직 수행
- Servlet을 실행하여 동적으로 응답 생성
- 예: Tomcat, Jetty, JBoss, WebLogic
웹 서버와 WAS 구조
Container와 Context
주요 개념
물리적 서버와 WAS
물리적인 서버는 네트워크에서 접근하기 위해 IP 주소를 가지며, HTTP 기반으로 통신한다. 이러한 물리적인 서버에는 WAS가 설치되어 HTTP 기반의 웹 서비스를 처리한다.
Container로서의 WAS
WAS는 기본적으로 8080과 같은 비특권 포트에서 구동되고, 운영 환경에서는 보통 프록시나 로드밸런서가 80/443 포트를 받아 WAS로 전달한다. WAS는 웹 애플리케이션 동작에 필요한 실행환경과 리소스를 담고 있기 때문에 Container라고 불린다.
Context의 역할
하나의 WAS에는 동시에 여러 가지 웹 애플리케이션이 동작할 수 있다. 각 애플리케이션의 실행 환경과 실행 정보를 제공하는 단위를 Context라고 한다. 엄밀히 말하면 기능을 제공하는 애플리케이션과 실행 환경은 다른 개념이지만, 실무에서는 거의 동일한 개념으로 사용된다.
Container와 Context 예시
http://localhost:8080/shop/products/list.jsp
├── localhost:8080 → Container Root
├── /shop → Context Root
└── /products/list.jsp → URL Mappinghttp://localhost:8080/admin/users/manage.jsp
├── localhost:8080 → Container Root
├── /admin → Context Root
└── /users/manage.jsp → URL MappingLast updated on