웹서버는 정적(static pages)인 요청을 처리한다.
웹서버는 파일 경로 이름을 받아 경로와 일치하는 파일을 보내준다. (파일 상태로 있을 수도 있고 없을 수 도 있고, 파일이 존재할 수도 있고 존재하지 않을 수도 있다.) 정적이라는 뜻은 변하지 않고 타입이 정해져 있다는 것을 의미한다.
ex) images, html, mp3, css...
WAS는 동적인 요청을 처리한다.
예를 들면 현재 시각이라던가, 오늘의 주가 같이 계속 변하는 요청을 말한다.
WAS = Web Server + Web Container
클라이언트의 요청을 대기한다.
서버는 요청이 들어오는지 리스닝을 한다. 서버는 요청을 24시간 감시해야 하니까 데몬스레드형태로 돌아가야 한다.
우리는 중프 때 데몬스레드를 따로 안만들었는데 그 이유가 톰캣 덕분이다.
1) 클라이언트 서버
2) Web Server
3) WAS
이렇게 3개로 운영하면 3티어라고 하고
WAS가 데이터를 가공할 때 raw data가 필요한데 그 raw data는 데이터베이스 안에 있다.
이렇게 데이터베이스까지 함께 운영하면
4티어가 된다.
순서) 클라이언트의 요청 -> Web Server가 먼저 잡음 -> 동적 요청이면 WAS에 위임한다. -> 스레드를 분리하여 해당 스레드에서 처리한다. -> 응답 데이터를 만들어 Web Server에게 준다. -> Web Server가 응답데이터를 forwarding 한다.