인생여러방 2023. 5. 21. 17:22
728x90
반응형

웹 서버
웹 서버란 클라이언트로부터 HTTP 요청을 받아 정적인 컨텐츠를 제공한다. 동적인 컨텐츠 제공 요청을 받을 경우에는 그 요청을 Web Container(혹은 WAS)로 보내고, Web Container(혹은 WAS)로부터 받은 동적 컨텐츠를 클라이언트에게 전달하는 역활을 한다. 이 기능을 포함한 하드웨어 또한 웹 서버라고 한다.

웹 어플리케이션(WAS, Web Application Server)
Web Application Server란 Web Server와 Web Container, 두 가지를 포함하는 서버이다. Web Container를 Servlet Container로 부르기도 한다. Web Container는 동적 컨텐츠를 Web Server에 전달한다.

WAS에 Web server가 있고, Web Container가 있어 WAS만 있으면 별도의 Web server만 없어도 되지만, 정적인 컨텐츠를 웹서버에서 담당하게 하고, 동적인 컨텐츠는 WAS에서 다루게 함으로서 WAS의 부하를 줄일 수 있다. 하지만 이제는 하드웨어 성증이 좋아져서 WAS하나로 사용할 수 있다.

* 정적인 컨텐츠(Static Pages)
=> html, css, javascript, image 파일처럼 클라이언트가 제공한 인자와 상관 없이 동일한 컨텐츠를 의미한다. 웹 서버는 파일 경로와 파일 이름을 이용하여 DB에서 요청한 파일을 찾고 그 파일 그대로 클라이언트에게 전달한다. 

* 동적인 컨텐츠(Dynamic pages)
=> 클라이언트가 제공한 인자에 따라 값이 다른 컨텐츠를 의미한다. 클라이언트가 제공한 인자에 따라 DB 값을 참조하여 WAS에서 결과 페이지를 만들고 클라이언트에게 전달한다.(ex. 성별 체크 서비스에서 클라이언트가 "영수"를 입력하면 "남"이라는 페이지를 클라이언트에게 전달하고, "영희"를 입력하면 "여"라는 페이지를 클라이언트에 전달한다.

 

아파치 웹 서버 => 웹 서버, 톰캣 => 웹 컨테이너, 아파치 톰캣 => 웹 어플리케이션 서버

Web Application Server

① 클라이언트가 (웹 브라우저를 통해) HTTP Request를 웹 서버에 한다.
 웹 서버가 클라이언트로부터  정적인 컨텐츠를 요청 받았다면 DB 서버에 해당 페이지를 요청한다.
 DB 서버는 해당 페이지를 웹 서버에 전달한다.
④ 웹 서버가 클라이언트로부터 동적인 컨텐츠를 요청 받았다면 Web Container에 해당 요청을 전달한다.
⑤ 웹 컨테이너는 클라이언트로 부터 받은 요청을 수행하기 위해 필요한 데이터를 DB 서버에 요청한다.
 DB 서버는 필요한 정보를 제공하고, web container는 클라이언트가 제공한 인자와 DB로 부터 받은 정보를 활용하여 동적인 컨텐츠를 만든다.
⑦ 동적 컨텐츠 결과물을 웹 서버에 전달한다.
⑧ 웹 서버는 해당 정보를 클라이언트에게 전달한다. 정적인 페이지만 요청받았다면 web cotainer를 거치지 않고 바로 정적인 페이지를 클라이언트에게 전달한다.

728x90
반응형