웹 서버는 클라이언트에서 request 가 들어오면 정적인 파일들을 응답으로 전달한다. 정적인 파일을 response 로 전달한다는 뜻은, HTML, CSS, JS 같은 정적 파일을 response 로 전달할 수 있지만 어플리케이션 코드를 실행해 response를 줄 수 없다는 뜻이다. 즉, 로그인, 데이터베이스 관련 작업 등 코드를 실행해야 하는 어플리케이션은 웹 서버만으로 구현할 수 없다.
어플리케이션서버, WAS 라는 단어로 혼용되어 쓰여지며, 웹 서버와는 다르게 클라이언트에서 request 들어오면 코드 실행을 통해 동적인 response를 전해줄 수 있다. 또한 서버의 자원을 최적으로 사용하기 위해서 프로세스의 메모리를 조절 하기도 한다.
이미 인지 했겠지만 웹서버만을 사용한다면 많은 제약이 생긴다. 그래서 보통 웹서버와 웹 어플리케이션을 함께 사용한다.
웹 서버가 정적 파일을 처리하고 여러 웹 어플리케이션 서버로 라우팅 하는 역할을 수행한다.
또한 한 서버내에서 2개의 사이트를 사용한다면 request를 분석해 적절한 어플리캐이션 서버로 전달할 수 있다.
웹브라우저의 카운터 파트너로서 서버 쪽에서 정보를 제공하는 소프트웨어를 의미한다. 클라이언트로부터의 HTTP요청을 받아 정적인 페이지/파일을 돌려준다. (동적인 부분은 WSGI가 담당. 아래에서 다룹니다.) 가벼움과 높은 성능을 목표로 한다. 웹 서버, 리버스 프록시 및 메일 프록시 기능을 가진다. 대표적인 웹서버는 Apache, Nginx가 있다.
출처: https://itmining.tistory.com/135 [IT 마이닝]
Web Server Gateway Interface
원래 웹 서버와 애플리케이션 서버는 따로 구분하지 않았으나, 웹 사이트가 점차 다양하고 복잡한 작업을 맡게 되면서 두 가지를 구분하게 되었다. 웹 서버는 클라이언트(웹 브라우저)가 보낸 HTTP 요청을 받아 디스크에 보관된 HTML, CSS, 자바스크립트 등의 파일을 송수신하는 역할을 주로 맡지만, 애플리케이션 서버는 요청에 따라 데이터베이스를 조회하거나, 데이터를 가공하거나, 다른 프로그램에 추가적인 요청을 보내거나, 입력값을 바탕으로 결과값을 계산하는 등의 복잡한 작업을 맡는다. 다만 이러한 기능들이 완전하게 분리된 것은 아니어서, 대부분의 애플리케이션 서버는 디스크에 보관된 정적 파일을 송신할 수 있다
Event-Drive 형식
참고 - https://itmining.tistory.com/135