🧩 웹 서비스 (Web Service)
HTTP 프로토콜을 기반으로 한 클라이언트와 서버의 통신
1. 웹서버 (Web Server)
- 웹 브라우저에서의
HTTP request
에 응답하여 정적 콘텐츠(HTML/CSS/JS, 이미지, 영상..) 반환
- 엄밀한 의미에서 애플리케이션 서버들의 교집합 영역에 있다고 할 수 있음
- 클라이언트에서 서버에
HTTP request
를 보내면 웹서버가 요청 내용을 확인하고, 정적파일에 대한 요청이면 응답하고, 아니면 WAS에게 요청을 넘김
- WAS가 처리한 결과를 넘겨받아 클라이언트에게 전달
- IIS, Apache, Nginx, GWS 등
2. 앱서버 (WAS, Web Application Server)
- 웹서버와 앱 사이의 동적 콘텐츠를 생산하는 미들웨어(소프트웨어 엔진)
- 웹서버와 앱의 중간다리 역할 (웹서버는 앱을 알지 못하고, 앱은 웹서버를 알지 못함)
- 웹서버로부터 넘겨받은 요청을 App이 이해할 수 있는 형태로 넘기고 App에서 데이터 처리 진행
동적 콘텐츠 반환
- 일반적으로 DB 서버와 함께 서비스를 수행
- 클라이언트와 서버간의 상호작용을 통한 트랜잭션 결과, 의사결정 지원 또는 실시간 분석
- Tomcat, uWsgi, WebLogic, Jboss
3. 앱 (Web Application)
- DB를 질의하고 데이터를 가공하여 제공하는 역할
- 비지니스 로직이 앱에서 구현
- Django, Flask, PHP, JSP, ASP
4. Web Server와 WAS가 굳이 분리되어 있는 이유
자원 이용의 효율성 및 장애 극복, 배포 및 유지보수의 편의성
- 기능 분리를 통한 서버 부하 방지
- 물리적 분리를 통한 보안 강화
- 여러 대의 WAS를 연결하여 로드 밸런싱 확보
- 여러 언어의 웹 애플리케이션 서비스 수행
✔️ 실제로는,
둘의 구분이 희미해졌고 정적 웹 콘텐츠와 동적 애플리케이션 콘텐츠가 결합된 웹 서버와 애플리케이션의 하이브리드가 가장 인기
정리를 정말 깔끔히 하셨네요! 잘봤습니다~