티스토리 뷰

웹서버(Web Server)와 WAS(Web Application Server)


* 웹서버

- 클라이언트가 서버에 페이지를 요청하면, 요청을 받아 정적 컨텐츠를 제공하는 서버

- 클라이언트에서 요청이 올 때, 가장 앞단에서 요청에 대한 처리를 한다.

- 웹서버만 구축된 서버는 페이지, 이미지 등 모두 정적 데이터만 생성한다.

- ex) Apache, Nginx, IIS(Internet Information Server) 등


* WAS

- 동적 컨텐츠를 제공하기 위해 만들어진 애플리케이션 서버

- 웹 서버로부터 요청이 오면, 컨테이너가 받아서 처리

- 웹상에서 사용하는 컴포넌트들을 올려놓고 사용하게 되는 서버

- 쓰레드 생성 → 서블렛 호출 → 함수 호출 → 페이지 전달 → Response 객체를 HTTPResponse로 변환 → 쓰레드, 객체 소멸 (이 내용은 아래 한번 더 설명)

- JBoss, Jeus, Tomcat(JSP/Servlet 컨테이너의 기능은 있지만, EJB는 없어서 WAS가 아니라는 의견도 있다)

《 EJB : Enterprise JavaBeans, 자바로 서버 측 비지니스 로직을 작성하기 위한 서버측 컴포넌트 모델 》


* 컨테이너

- JSP와 서블릿을 실행시킬 수 있는 소프트웨어를 웹 컨테이너 또는 서블릿 컨테이너라고 한다.

- 웹서버에서 JSP를 요청하면 톰캣에서는 JSP를 서블릿으로 변환하여 컴파일을 수행, 서블릿의 수행 결과를 웹서버에 전달한다.

- ex) Servlet 컨테이너, JSP 컨테이너, EJB 컨테이너


웹서버와 WAS는 동적 서버 컨텐츠를 수행하느냐 아니면 정적 서버 컨텐츠를 수행하느냐의 차이이다.

정적인 HTML이나 이미지를 제공한다면 ? 웹서버

동적인 처리를 제공한다면 ? WAS 





① 웹 서버로부터 온 요청을 컨테이너가 받아서 처리

② 쓰레드를 생성하고 요청(HttpServletRequest), 응답(HttpServletResponse) 객체를 생성하여 전달

③ 컨테이너는 서블릿을 호출

④ 호출된 서블릿의 작업을 담당하는 쓰레드(①번에서 생성)는 요청에 따라 함수를 호출(doPost()/doGet())

⑤ 호출된 함수에 따라 생성된 동적 페이지를 Response 객체에 실어서 컨테이너에 전달

⑥ Response 객체를 HTTPResponse로 변환하여 웹서버에 전달, 생성된 쓰레드 종료하고 요청, 응답 객체 소멸




댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함