-
[CS] Web server와 Was(web application server)Computer Science 2022. 3. 8. 22:04
Web Server
web server란 클라이언트로부터 HTTP 요청을 받아 HTML 문서나 각종 리소스를 전달하는 컴퓨터를 말한다.
어떤 요청을 받았을 때 정적인 데이터를 반환해주는 컴퓨터라고 볼 수 있다.
예를들어 Computer는 Video1.mp4, Video2.mp4, VIdeo3.mp4 이렇게 세 개의 동영상 파일을 가지고 있다라고 가정한다.
A, B, C는 인터넷 연결망을 통해 서로 연결되어 있다.
A가 Computer의 Video1.mp4을 요청했고, Request에는 다음과 같은 정보가 포함되어야 한다.
- IP주소
- URL
IP주소는 목적지인 Computer의 주소여야하고, URL은 Computer에서 필요한 데이터를 명시해야한다.
이를 표현하면 다음과 같다.
https://~~~(ip)/(데이터)
위 Compter의 개념을 Web Server로 이해할 수 있다.
대표적인 Web Server로 apache가 있다.
WAS(web application server)
WAS란 Web Server와 Web Container을 합친 웹 어플리케이션과 서버 환경을 만들어 동작시키는 기능을 제공하는 소프트웨어 프레임워크다.
Web Server는 요청 시에 항상 사전에 정의된, 존재하는 정적인 데이터(html, css, images 등 static)만 반환할 수 있다.
그림기준으로 A, B, C는 Web Server요청에서 Video을 볼 수 있지만, 해당 데이터들을 실시간으로 편집하거나 업데이트 등을 할 수는 없다.
이런 일련의 작업들을 클라이언트 입장에서 동적으로(dynamic) 처리하기 위해 도입된 개념이다.
예를 들어 A가 아파치에게 java file로 request을 보냈다면, java file을 컴파일하고 static file로 response를 해줄 친구가 필요하며, 그 역할을 WAS가 해준다.
이 WAS의 대표적인 예가 Tomcat이다.
그러면 WAS가 Web Server + Web Container라면 Web Server을 거치지 않고 WAS만으로 일을 처리할 수 있지 않을까 생각해 볼 수 있다.
하지만 WAS가 있음에도 Web Server을 쓰는 이유에는 여러가지 이유가 있다.
1. WAS도 결국 하나의 서버의 개념이다. WAS에서는 DB 조회, 변경 등 여러 비즈니스 로직을 수행하게 된다. 만약에 Web Server을 따로 분리하지않으면 서버의 부하가 발생할 수 있다. 속도면에서도 문제가 있을 수 있다.
2. WAS에서는 DB에 관한 로직 또한 처리한다. Client와 WAS사이에 Web Server을 거쳐주면서 DB에 대한 보안성 향상에 도움을 줄 수 있다.
3. WAS는 대규모 서비스를 할 때, 마비를 피하기 위해 여러개의 WAS을 운용한다. 복수의 WAS을 사용함으로써 하나의 WAS가 마비되어도 다른 WAS에서 기능 수행을 할 수 있기 때문에 무중단 운영에 한층 유리해진다.
출처 : Web Server와 WAS(web application server)란? (tistory.com)
'Computer Science' 카테고리의 다른 글
[CS] Dispatcher Servlet (0) 2022.03.08 [CS] Servlet의 개념과 동작 과정 (0) 2022.03.08 [CS] CQS - Command Query Separation (0) 2021.12.30 [CS] REST API란? (0) 2021.11.16 [CS] 객체지향(OOP)의 5원칙 (SOLID) (0) 2021.11.05