모아이티

[면접질문] WEB_ WAS와 웹서버 차이 본문

면접질문

[면접질문] WEB_ WAS와 웹서버 차이

Yun's kitchen 2021. 11. 5. 13:43

WAS(Web Application Server)이란

-> 동적 컨텐츠를 제공하기 위해 만들어지 Application 서버(DB조회, 로직처리 요구)

특징

  • JSP, Servlet 환경 제공
  • 컨테이너, 웹컨테이너, 서블릿 컨테이너라 불림(JSP, Servlet을 동작시킬 수 있는 소프트웨어)

동작 프로세스

  1. 웹서버로부터 요청이 오면 컨테이너가 받아서 처리
  2. 컨테이너는 web.xml을 참조하여 해당 서블릿에 대한 쓰레드 생성하고 httpServletRequest와 httpServletResponse 객체를 생성하여 전달
  3. 컨테이너가 서블릿을 호출
  4. 호출된 서블릿의 작업을 담당하게 된 쓰레드는 doPost() 또는 doGet()을 호출
  5. 호출된 doPost(), doGet() 메소드는 생성된 동적 페이지를 Response 객체에 담아 컨테이너에 전달
  6. 컨테이너는 전달받은 Response 객체를 HttpResponse 형태로 바꿔 웹서버에 전달하고 생성되었던 쓰레드를 종료하고httpServletRequest, httpServletResponse 객체를 소멸

사용하는 대표적인 예

  • Tomcat
  • Jeus
  • JBoss

웹서버(WEB Server)란

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

-> 클라이언트에서 요청이 오면 가장 먼저 요청에 대한 처리를 한다.

-> 클라이언트의 요청을 기다리고 요청에 대한 데이터를 만들어서 응답하는 역할(정적 데이터)

 

대표적인 예

  • 정적 컨텐츠(html, .png)이면 웹서버가 응답하여 제공
  • 정적 컨텐츠가 아니라면 -> 웹서버에서 처리 불가 -> WAS에게 처리를 넘김 -> WAS가 처리해준 컨텐츠를 받아 웹서버는 클라이언트에게 응답을 해준다.
  • Apache, nginx

WAS와 WEB서버 차이는?

- 동적 컨텐츠 처리가 가능한지 확인

- WAS가 동적, 정적 둘 다 처리 가능하지만 과부하가 걸려 웹서버와 같이 분담하여 처리

 

그런데 WAS, WEB서버를 따로 쓰는 이유가 성능때문이 아니라는 것이다!!!!!

 

Tomcat 5.5 이상부터는 httpd의 native모듈을 사용해서 정적파일을 처리하는 기능을 제공하는데 이것이 순수 Apache Httpd만 사용하는 것과 비교해서 성능이 전혀 떨어지지 않기 때문이다.

 

그럼에도 둘 다 사용하는 이유

- 하나의 서버에서 php 애플리케이션과 java애플리케이션을 함께 사용할 때

- httpd 서버를 간단한 로드밸런싱을 위해 사용할 때 필요

 

[참고사이트]

https://jeong-pro.tistory.com/84?category=793347

 

 

Comments