웹 서버(Web Server) 란?
HTTP 기반으로 동작하며 클라이언트로부터 HTTP 요청을 받아 각종 서비스를 제공하는 컴퓨터 입니다.
클라이언트는 웹서버에게 주소를 가지고 통신규약에 맞게 요청하면 알맞은 내용을 응답 받습니다.
서버는 클라이언트의 요청을 기다리고, 웹 요청에 대한 데이터를 만들어서 응답합니다. 서버는 이때 정적 리소스를 제공합니다.
그러면 WAS는 무엇일까요?
웹 애플리케이션 서버(Web Application Server) 란?
- 웹 애플리케이션과 서버 환경을 만들어 동작시키는 기능을 제공하는 소프트웨어 프레임워크.
- 웹 애플리케이션을 실행시켜 필요한 기능을 수행하고 그 결과를 웹 서버에게 전달합니다.
WAS는 웹 서버 기능을 포함 하고 프로그램 코드를 실행해서 애플리케이션 로직을 수행 할 수 있습니다.
그렇다면 정적 리소스, 애플리케이션 로직을 모두 제공하는 WAS로 만 웹 시스템 구성을 할 수 있지 않을까요?
만약 그렇게 된다면 WAS가 너무 많은 역할을 담당하고 서버 과부화에 우려가 있습니다. 그리고 WAS가 장애가 난다면 클라이언트는 아무 화면도 볼 수 없게 됩니다.
그래서 웹 시스템을 구성할때는 각자에 기능에 맞게 분리해야 합니다.
위와 같이 구성을 하게 되면 각각 하나의 기능을 담당하게 됩니다. 정적 리소스는 웹 서버가 처리를 하고, 웹 서버는 애플리케이션 로직같은 동적인 처리가 필요하면 WAS에게 요청하여 처리를 하게됩니다.
또한 효울적으로 리소스도 관리가 가능하게 됩니다. 만약 정적 리소스가 많이 사용되면 Web 서버를 증설하면 되고, 애플리케이션 리소스가 많이 사용되면 WAS를 증설하면 됩니다. 그리고 만약 WAS, DB 가 장애가 나더라도 웹 서버가 오류화면을 클라이언트에게 제공 가능합니다.
그림 출처 및 내용 참고 - 인프런 김영한 강사님 ,
유튜브 희봉님 10분 테크톡
'스프링' 카테고리의 다른 글
싱글톤 패턴(Singleton) (0) | 2022.05.26 |
---|---|
REST ? RESTful ? REST API? (0) | 2022.05.26 |
관심사의 분리(Seperation Of Concern) (2) | 2022.05.18 |
스프링(Spring)은 왜 사용할까? (0) | 2022.03.25 |
@Bean 과 @Component 의 차이? (0) | 2022.03.22 |