Web Server
Web
인터넷으로 연결되어 사람들이 정보를 공유할 수 있는 공간을 말합니다.
URL은 주소, HTTP는 통신 규칙, HTML은 정보/데이터입니다.
Server
Server는 client가 네트워크를 통해 보낸 요청을 바탕으로 정보나 서비스를 응답으로 제공하는 컴퓨터 시스템입니다.
Web Server
Web Server는 인터넷을 기반으로 Client에게 웹 서비스를 제공하는 컴퓨터입니다.
Client는 URL을 기반으로 HTTP규칙에 따라 원하는 정보를 요청합니다.
Server는 Client의 요청을 기다리다가, 요청에 대한 데이터를 만들어서 응답으로 전달합니다.
이때 만들어 전달하는 데이터는 정적인 데이터(HTML, CSS 등)만 전달 가능합니다.
예를 들어 구구단을 출력하는 요청을 Client가 보내면 web server는 1단부터 9단까지 모두 출력해서 보냅니다.
딘, HTML은 프로그래밍 언어가 아니기 때문에 for문으로 구구단을 출력하지 못합니다.
Web Application
Web Application은 웹에서 실행되는 응용프로그램입니다.
Web Application Server(WAS)
WAS는 웹 애플리케이션과 서버 환경을 만들어 동작시키는 기능을 제공하는 SW 프레임워크입니다.
WAS는 web server와 데이터베이스 사이에서 동작하는 미들웨어라고 불리기도 합니다.
WAS = Web Server + Web Container
Client로부터 온 요청이 정적인 요청이면 Web Server가 처리합니다
Client로부터 온 요청이 동적인 요청이면 Web Server가 본인이 처리하지 못하는 것을 알고 Web Container에게 넘겨줍니다.
Web container는 이를 servlet을 실행하고 동적 콘텐츠를 생성해 client에게 전달합니다.
이렇게 WAS는 web server 없이도 혼자서 모든 일을 수행할 수는 있습니다.
Web server와 WAS를 같이 쓰는 이유는 이 글의 마지막에 기록하겠습니다.
Web Server의 종류
Apache, Nginx ...
Web Application Server(WAS)의 종류
Tomcat, jetty ...
즉, Web Server와 WAS의 가장 큰 차이점은, 요청에 따라 달라지는 정보를 제공할 수 있는지, 없는지로 구분이 가능합니다.
Web Server와 WAS 같이 사용하는 이유
개발한 시스템이 너무 커져서 사용자가 많아지면 서버에 부하가 생깁니다.
주로 정적인 콘텐츠는 web server가, 동적인 컨텐츠는 WAS가 담당하며 업무를 분담합니다.
추가적으로, web server와 was를 같이 사용해 아키텍처를 구성할 수 있습니다.
Web server는 로드 밸런싱 기능을 갖고 있어서 여러 대의 WAS로 많은 트래픽을 분산시킬 수 있습니다.
Web server는 리버시 프록시를 통해 WAS를 외부에 노출시키지 않고 보안을 유지할 수 있습니다.
'네트워크' 카테고리의 다른 글
[네트워크] RESTful API 란? (0) | 2021.05.31 |
---|
댓글