웹 서버와 웹 애플리케이션 서버
✒️ 2025-05-16 09:10 내용 수정
웹서버
웹 브라우저와 같은 클라이언트로부터 HTTP 또는 HTTPS 요청을 받아들이고, 웹 페이지 문서를 반환하는 서비스 프로그램
- 참고 자료 : 위키백과 웹 서버
- gmlwjd9405's Web Server와 WAS의 차이와 웹 서비스 구조
- 클라이언트(웹 브라우저, 웹 크롤러)가 웹 페이지를 서버에 요청(request)하면, 서버는 그림, CSS, JavaScript를 포함한 HTML 문서(정적 컨텐츠)를 전달(response)한다.
- 리소스는 일반적으론 서버의 보조 기억 장치에 있는 실제 파일을 가리키지만, 웹 서버의 수행 방법에 따라 다를 수 있다.
- HTML, CSS(Cascading Style Sheet), JavaScript, 웹서버 설치, HTTP(Hyper Text Transfer Protocol) 참고.
| 컨텐트 종류 | 설명 |
|---|---|
| 정적 컨텐트 | 반환되는 컨텐트의 내용이 항상 동일 |
| 동적 컨텐트보다 더 빠르고 쉽게 동작하고, 쉽게 캐시될 수 있다. | |
| 웹 서버에서 처리하는 컨텐트 타입. 웹 애플리케이션 서버에서도 처리함 | |
| 동적 컨텐트 | 동적으로 생성된 HTML 문서 |
| 주로 데이터베이스의 정보를 조회해서 보거나 수정하기 위해 사용한다. | |
| 웹 애플리케이션 서버에서 처리하는 컨텐트 타입 |
기능
- 대다수의 웹 서버는 ASP(Active Server Page)나 PHP 등의 Server-side scripting을 지원하는데, 서버 소프트웨어의 변경 없이 웹 서버가 수행할 동작(HTML 문서를 동적으로 생성)을 분리된 Server-side scripting에 기술할 수 있다.
- 기본 공통 기능으로 HTTP, 통신 기록을 제공한다.
- 기본 공통 기능에는 포함되지 않으나, 대다수의 웹서버는 인증, 정적 컨텐츠 관리, HTTPS 지원, 컨텐츠 압축, 가상 호스팅, 대용량 파일, 대역폭 스로틀링도 지원한다.
종류
- Apache, IIS, GWS, NginX, Wordprass, Oversee 등이 있다.
WAS(Web Application Server)
웹 어플리케이션과 서버 환경을 만들어 동작시키는 기능을 제공하는 소프트웨어 프레임워크
- 참고 자료 : 위키백과 웹 애플리케이션 서버
- 코드사냥꾼's 웹 서버와 WAS의 차이를 쉽게 알아보자
- 인터넷 상에서 HTTP를 통해 사용자 컴퓨터나 장치에 애플리케이션을 수행해주는 미들웨어로 볼 수 있다.
- 미들웨어 : 운영 체제와 응용 소프트웨어의 중간에서 조정과 중개의 역할을 수행하는 소프트웨어다. 응용 소프트웨어가 운영 체제로부터 받는 서비스 외의 추가적으로 이용할 수 있는 서비스를 제공한다.
- 참고 자료 : 위키백과 미들웨어
- 웹 서버와는 동적 서버 컨텐츠를 수행한다는 점에서 구별된다.
- 웹 서버에서 동적 컨텐츠를 요청받으면 WAS로 요청을 넘겨주고, WAS에서 이를 제공한다.
- 웹 컨테이너(Web Container) 또는 서블릿 컨테이너(Servlet Container)로도 불린다.
- Web Container : Jakarta 서블릿과 상호작용하는 웹 서버의 구성 부분으로, 서블릿의 관리와 서블릿에 연관된 기능들을 관리한다.
- 참고 자료 : wikipedia Web container
기능
- 웹 서버 + 웹 컨테이너 역할을 수행하며, 주로 데이터베이스 서버와 같이 수행한다.
- 보통 프로그램 실행 환경과 데이터베이스 접속 기능 제공, 여러 개의 트랜잭션 관리, 업무 처리용 비스니스 로직을 수행한다.
종류
- Apache Tomcat, Resin, JRun, 닷넷 애플리케이션 서버, Winstone Servlet Container, Jetty, JBoss, Jeus, Web Sphere 등이 있다.
웹 서버와 웹 어플리케이션 서버를 둘 다 사용할 때
- 만약 웹 서버와 웹 어플리케이션 서버만 따로 사용한다면 웹 서버에선 동적 컨텐츠 처리에 자원을 할당하기 힘들고, 웹 어플리케이션 서버에선 정적 컨텐츠와 동적 컨텐츠를 모두 관리하면서 서버에 부담이 생길 수 있다.
- 각 서버의 부담을 줄이고, 빠른 컨텐츠 응답과 서버 관리를 위해 두 서버를 모두 사용해 역할을 분배시킬 수 있다.
-
웹 서버
- 정적 컨텐츠를 담당
- SSL을 적용하여 보안을 강화할 수 있음(HTTP -> HTTPS)
- 접근 허용 IP 관리, 여러 대의 물리적 서버 이용 시 세션 관리에 효율적
- 여러 개의 웹 애플리케이션 서버를 사용 시 웹 서버에서 이들을 관리할 수 있음
-
웹 어플리케이션 서버
- 동적 컨텐츠를 담당
- 여러 개의 웹 애플리케이션 서버를 사용 시 다양한 서비스를 추가할 수 있음
