Wev Server? (웹서버)
웹 서버는 두가지 뜻이 있다.
웹서버: 웹 브라우저와 같은 클라이언트로부터 HTTP 요청을 받아들이고, HTML 문서와 같은 웹 페이지를 반환하는 컴퓨터 프로그램
웹서버(하드웨어): 위에 언급한 기능을 제공하는 컴퓨터 프로그램을 실행하는 컴퓨터
웹서버는 HTTP 또는 HTTPS를 통해 웹 브라우저에서 요청하는 HTML문서난 오브젝트(이미지파일 등)을 전송해주는 서비스 프로그램을 말한다.
WAS? (웹 애플리케션 서버)
웹서버 + 웹 컨테이너
WAS는 인터넷 상에서 HTTP를 통해 사용자 컴퓨터나 장치에 애플리케이션을 수행해 주는 미들웨어(소프트웨어 엔진)이다.
WAS는 동적 서버 콘텐트를 수행하는 것으로 일반적인 웹 서버와 구별이 되며, 주로 데이터베이스 서버와 같이 수행된다.
웹컨테이너?
웹컨테이너는 서블릿 컨테이너라고도 부르며 컨테이너라는 개념은 동적인 데이터들을 처리하여 정적인 페이지로 생성해주는 소프트웨어 모듈이다.
서블릿?
서블릿은 동적 웹페이지를 만들 때 사용되는 자바 기반의 웹 애플리케이션 프로그래밍 기술이다. 서블릿은 웹 요청과 응답의 흐름을 간단한 메서드 호출만으로 체계적으로 다룰 수 있게 해준다.
순서
1. 클라이언트는 웹서버로 Request(요청)를 보낸다.
2. 서블릿을 포함하는 WAS는 컨테이너로 요청을 보낸다.
3. 컨테이너가 요청을 각 서블릿에게 전달한다.
4. 서블릿 메서드가 로드된다.
5. 서블릿은 컨테이너에 관련 Response(응답)를 넘겨준다.
6. 컨테이너는 이를 서버에 전달한다. 서버는 응답을 클라이언트에게 전달한다.
차이점
웹서버는 정적인 데이터를 처리하는 서버이다. 이미지나 단순 html 파일과 같은 리소스를 제공하는 서버를 웹 서버를 통하면 WAS를 이용하는 것 보다 빠르고 안정적.
WAS는 동적인 데이터를 처리하는 서버이다. DB와 연결되어 데이터를 주고 받거나 프로그램으로 데이터 조작이 필요한 경우에는 WAS를 활용해야함.
우리가 사용하는 웹 서비스는 이 두가지를 모두 활용한다. 그 이유는 WAS가 정적 데이터를 처리하게 되면 동적 컨텐츠의 처리가 지연되고, 이로인해 페이지 노출시간이 늘어나게 된다고 한다.
WAS는 동적 처리에 최적화 되어 있는 서비스이기 때문에 처리 속도를 위해, 정적처리는 웹서버가 담당을 하고 WAS는 동적처리를 담당하게 된다.