반응형
웹 서버(Web Server)
Web
- 인터넷을 기반으로 정보를 공유, 검색 할 수 있도록 하는 서비스
- 웹 구성 3대요소 : URL(요청 주소), HTTP(통신 규약), HTML(내용)
Server
- 클라이언트에게 네트워크를 통해 정보나 서비스를 제공하는 컴퓨터 시스템
- 클라이언트의 요청을 처리해주는 역할 담당
Web Server = Web + Server
- 인터넷을 기반으로 클라이언트에게 HTTP 요청을 받아 HTML 문서나 기타 리소스를 제공하는 컴퓨터 프로그램
- 사용자 요청사항에 대한 정적 컨텐츠 처리만 가능하다
Web Server의 주요 역할은 사용자 요청에 맞는 정적인 HTTP 콘텐츠를 뿌려주는 것이다.
WAS(Web Application Server)
- Web Server(정적 컨텐츠 관리) + Web Container(동적인 컨텐츠 관리)
- 웹 애플리케이션과 서버 환경을 만들어 동작시킨 기능을 제공하는 소프트웨어 프레임워크
- DB 조회나 사용자 요구사항에 맞는 다양한 로직 처리를 요구하는 동적 컨텐츠 제공 용도로 만들어진 Application Server
이미지와 같이 WAS는 정적 컨텐츠와 동적 컨텐츠 모두를 처리할 수 있다.
언뜻 WAS는 정적/동적 컨텐츠 모두를 처리할 수 있다보니 Web Server의 필요성에 의문을 가지게 된다.
하지만 일반적으로 아래 이미지와 같이 Web Server와 WAS를 구분하여 구성한다.
Web Server와 WAS 분리의 이점
- 기능을 분리하여 서버 부하 방지 : WAS가 단독으로 모든 요청을 처리한다면 WAS가 감당하는 부하가 커진다. 따라서 정적 데이터는 Web Server에서 처리하도록 구분하여 서버 부하를 낮추고 처리속도를 높이는 것이 좋다.
- 물리적으로 분리하여 보안을 강화한다 : Web Server와 WAS를 분리한다면 WAS로 요청이 들어오기 전에 Web Server를 거치기 때문에 혹여나 Web Server에 보안 이슈가 발생하여도 WAS 내부의 주요 설정 파일이나 리소스들을 보호할 수 있다.
- Web Server에 여러 대의 WAS를 연결할 수 있다 : 대규모 서비스의 경우 Web Server와 WAS를 분리하면 무중단 운영을 위한 장애 극복에 효율적으로 대응할 수 있다. 또한 수많은 요청을 효과적으로 처리하기 위해 여러 WAS를 Web Server에 연결하면 Web Server로 들어오는 요청들을 여러 WAS들에 분배한다. 이는 안정적인 서비스 운영으로 이어진다.
참고
https://gmlwjd9405.github.io/2018/10/27/webserver-vs-was.html
반응형
'Programming > 기초지식' 카테고리의 다른 글
[Gradle] Could not find method compile() arguments~ (0) | 2021.08.17 |
---|---|
클래스 vs 객체(오브젝트) vs 인스턴스 각각의 차이점 (0) | 2021.08.12 |
Servlet은 무엇일까(등장배경 및 동작과정) (0) | 2021.08.11 |
REST에 대한 정리 (0) | 2021.08.03 |
프로세스(Process)와 스레드(Thread)의 차이점 (0) | 2021.07.28 |