[CS] HTTP 프로토콜부터 WAS까지 — 웹의 동작 원리
목차
HTTP (HyperText Transfer Protocol)란?
팀 버너스리(Tim Berners-Lee)와 그가 속한 팀은 CERN에서 HTML뿐만 아니라 웹 브라우저 및 웹 브라우저 관련 기술과 HTTP를 발명하였습니다. 문서화된 최초의 HTTP 버전은 **HTTP v0.9(1991년)**입니다.
HTTP는 서버와 클라이언트가 인터넷상에서 데이터를 주고받기 위한 프로토콜(protocol)로, 현재 HTTP/2까지 발전한 상태입니다.
HTTP 작동 방식 — 서버/클라이언트 모델
| 구분 | 내용 |
|---|---|
| 장점 | 불특정 다수 대상 서비스에 적합. 연결을 유지하지 않아 최대 연결 수보다 훨씬 많은 요청/응답 처리 가능 |
| 단점 | 연결을 끊기 때문에 클라이언트의 이전 상태를 알 수 없음 (무상태, Stateless) |
무상태 특성 때문에 로그인 상태 등을 유지하기 위해 Cookie 같은 기술이 등장하였습니다.
URL (Uniform Resource Locator)
- 인터넷상의 자원 위치를 나타내는 주소
- 특정 웹 서버의 특정 파일에 접근하기 위한 경로
웹 서버(Web Server)란?
웹 서버는 클라이언트가 요청하는 HTML 문서나 각종 리소스(Resource)를 전달하는 소프트웨어(또는 그것이 동작하는 컴퓨터)입니다. 요청하는 리소스는 정적(static) 데이터이거나 동적 결과일 수 있습니다.
주요 웹 서버 소프트웨어
| 이름 | 특징 |
|---|---|
| Apache | Apache Software Foundation 개발. 오픈소스. 대부분의 OS 지원 |
| Nginx | 차세대 웹서버. 더 적은 자원으로 더 빠른 서비스를 목적으로 개발된 오픈소스 |
| Microsoft IIS | Windows 환경 전용 웹 서버 |
클라이언트/서버 구조와 미들웨어
**클라이언트(Client)**는 서비스를 제공하는 **서버(Server)**에게 정보를 요청하고 응답 결과를 사용합니다.
클라이언트 쪽에 비즈니스 로직이 많아지면 클라이언트 관리(배포 등) 비용이 증가합니다. 이를 해결하기 위해 미들웨어(Middleware) 서버에 비즈니스 로직을 두고, 클라이언트는 입력과 출력만 담당하도록 구조를 분리합니다.
WAS (Web Application Server)
WAS는 미들웨어의 일종으로, 웹 클라이언트(브라우저)의 요청 중 웹 애플리케이션이 동작하도록 지원하는 목적을 가집니다.

웹 서버 vs WAS 비교
| 구분 | 웹 서버 | WAS |
|---|---|---|
| 처리 대상 | 정적 콘텐츠(HTML, CSS, 이미지) | 동적 콘텐츠(비즈니스 로직, DB 연동) |
| 예시 | Apache, Nginx | Tomcat, WildFly, JBoss |
| 내장 웹서버 | - | 보통 자체 내장 |
- 현재 WAS 내장 웹서버도 정적 콘텐츠 처리 성능이 크게 떨어지지 않지만, 규모가 커질수록 웹 서버와 WAS를 분리합니다.
- 자원 효율성, 장애 극복, 배포·유지보수 편의성을 위한 선택입니다.