웹 서버는 소프트웨어
와 하드웨어
두 분야에서 다른 의미로 부른다.
"(일반적으로) HTTP 서버"
HTTP 서버
- URL(웹주소) 및 HTTP(프로토콜 주소)를 이해하는 소프트웨어
- HTTP 서버는 저장하는 웹 사이트의 도메인 이름을 통해 액세스 할 수 있으며, 이러한 호스팅 된 웹 사이트의 콘텐츠를 최종 사용자의 장치로 전달
HTTP 프로토콜을 기반으로, 클라이언트가 웹 브라우저에서 어떠한 요청을 하면 그 요청을 받아 정적 컨텐츠를 제공하는 서버
→ 만약, 웹 서버가 동적 컨텐츠를 요청받으면, 웹 서버는 WAS 에게 해당 요청을 넘김 + WAS에서 처리한 결과를 클라이언트에게 전달
"웹 서버 소프트웨어 + 웹 사이트의 구성 요소 파일을 저장하는 컴퓨터"
예시 : HTML 문서, 이미지, CSS 스타일 시트 및 JavaScript파일
정적인 HTML 페이지만 다루는 경우, 웹 서버는 Application Server 가 필요하지 않지만,
클라이언트의 요청을 Dynamic하게 처리해야할 경우, Application Server 가 필요하다.
(물론, 한 서버 내에서 '웹 서버 + 웹 어플리케이션' 이 같이 동작하는 경우도 있다.)
Web Server 와 DB 사이
에서 동작하는 서버
Application Server 에는 Web Application 이 동작하고 있다.
Web Server 와 WAS 에 대한 비교는 Apache 와 Tomcat 의 비교와 일맥상통한다.
Apache = Web Server
Tomcat = WAS = Web Server + Web Container(Servlet Container)
이기 때문이다.
참고: Servlet 과 Spring - 3) Servlet Container - (2) Tomcat (Apache Tomcat)
(아래 中 3번 구조)
웹 서비스는 아래와 같이 다양한 구조를 가질 수 있다.
Client -> 웹 서버 - > DB
Client -> WAS -> DB
Client -> 웹 서버 -> WAS -> DB
클라이언트가 웹 서버에 HTTP 요청을 보내면
웹 서버는 정적인 컨텐츠 요청은 바로 응답하고
동적인 컨텐츠 요청은 WAS 에게 넘겨서 처리하고
결과를 WAS 에게 받아서 클라이언트에게 넘겨준다.
참고: Apache? Tomcat?? 둘이 무슨 차이지?
참고: [Web] 웹 서버(Web Server)와 WAS의 차이
참고: [Web] Web Server란? Application Server란? (개념 정리)