본문 바로가기

서버

웹 서버(WS)와 웹 어플리케이션 서버(WAS)의 차이

반응형

웹 서버(WS)
- 클라이언트의 요청을 받아 정적인 데이터(html, css, image 등)를 처리
- 가장 앞단에서 클라이언트와 통신
- 클라이언트의 요청이 동적인 데이터이면 클라이언트로 부터 받은 요청을 웹 어플리케이션 서버(WAS)에 요청, WAS에서 처리한 결과를 클라이언트에게 반환
- ex) Apache, WebtoB 등

웹 어플리케이션 서버(WAS)
- 웹 서버(WS)에게 받은 요청(동적 데이터)을 처리
- 여러 트랜잭션 관리
- 비지니스 로직 수행
- 정적인 데이터도 처리할 수 있지만 부하를 줄이기 위해 정적인 컨텐츠는 웹 서버가 처리하여 서버의 부하를 방지
- 동적인 데이터를 처리할 수 있는 웹 서버
ex) Tomcat, Jeus 등

WAS 동작 과정

① 웹서버로 부터 요청이 들어오면 제일먼저 컨테이너가 이를 알맞게 처리한다.
② 컨테이너는 배포서술자(web.xml)를 참조하여 해당 서블릿에 대한 스레드를 생성하고 요청(httpServletRequest) 및 응답(httpServeletResponse) 객체를 생성하여 전달한다.
③ 다음으로 컨테이너는 서블릿을 호출(service())한다.
④ 호출된 서블릿의 작업을 담당하게 된 스레드(미리 생성된 스레드)는 요청에 따라 doPost() 또는 doGet()을 호출한다.
⑤ 호출된 doPost() 또는 doGet() 메소드는 생성된 동적페이지를 Response객체에 실어서 컨테이너에 전달한다.
⑥ 컨테이너는 전달받은 Response객체를 HTTPResponse형태로 전환하여 웹서버에 전달하고 생성되었던 스레드를 종료하고 요청(httpServletRequest) 및 응답(httpServeletResponse) 객체를 소멸시킨다.

 

 

참고사이트

https://m.blog.naver.com/bluefish0121/221294387117

https://velog.io/@gillog/Web-Server%EC%99%80-Web-Application-Server%EC%9D%98-%EC%B0%A8%EC%9D%B4

https://gmlwjd9405.github.io/2018/10/27/webserver-vs-was.html

반응형