[Spring] WAS와 웹 서버 차이

고지훈·2022년 1월 23일
0

Spring

목록 보기
17/26
post-thumbnail

WAS와 웹 서버

[웹 서버]

  • 클라이언트가 서버에 페이지를 요청하면 이 요청을 받아 정적 컨텐츠(html, css, png)를 제공하는 서버
  • 클라이언트에서 요청이 올 때 가장 앞에서 요청에 대한 처리를 한다.
  • 클라이언트의 요청을 기다리고 요청에 대한 데이터를 만들어서 응답하는 역할

[WAS]

  • 동적 컨텐츠를 제공하기 위해 만들어진 어플리케이션 서버(DB조회, 로직처리가 요구되는 컨텐츠)
  • JSP, Servlet구동 환경 제공
  • 컨테이너, 웹 컨테이너, 서블릿 컨테이너라고 부른다. (JSP, Servlet을 실행시킬 수 있는 소프트웨어=컨테이너)

동작 프로세스

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

[WAS와 웹 서버 차이]

  • WAS는 정적, 동적 처리가 가능하지만 정적처리를 WAS가 하게 될 경우 부하가 많이 걸려 좋지 않다.
  • 톰캣(WAS)에는 아파치(웹서버)의 기능(웹서비스데몬, Httpd)를 포함하고 있다.
profile
"계획에 따르기보다 변화에 대응하기를"

0개의 댓글