WEB과 WAS, JETTY란?(2021/12/23)

김재민·2021년 12월 23일
0

개념공부

목록 보기
1/3

웹서버(Web Server)

클라이언트 -> 서버에 페이징 요청 -> 요청 받음 -> 정적컨텐츠(.html, .png, .css)를 제공하는 서버

클라이언트 요청올 때 가장 앞에서 요청 처리

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

클라이언트가 정적컨텐츠를 요청했을 떄

html, png 등 응답(response)

클라이언트가 정적컨텐츠가 아닌 것(동적컨텐츠)을 요청했을 때

웹서버에서 간단히 처리 불가 -> WAS에게 처리 부탁 -> 결국 WAS가 처리해준 컨텐츠를 받은 웹서버는 응답(response)을 해줌

대표 : Apache, nginx

WAS(Web Application Server)

동적 컨텐츠를 제공하기 위해 만들어진 애플리케이션(DB조회, 로직처리가 요구되는 컨텐츠)

JSP, Servlet 구동 환경 제공

컨테이너, 웹컨테이너, 서블릿 컨테이너라고도 불림

동작 프로세스

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

대표적 WAS : Tomcat, Jeus, jetty

그렇다면 WAS와 웹서버의 차이는 무엇인가?

-동적 컨텐츠 처리를 수행가능한가? 가능하지 못하는가?

WAS는 정적, 동적처리 둘다 가능하지만 정적처리를 WAS가 하게되면 부하가 걸려 좋지 않음

*톰캣 5.5 이상부터는 httpd의 native모듈을 사용해서 정적파일을 처리하는 기능을 제공하는데 이것이 순수 아파치 Httpd만 사용하는 것과 비교해서 성능이 전혀 떨어지지 않기 때문
그럼에도 톰캣 앞에 Apache를 두는 이유는?

하나의 서버에서 php애플리케이션과 java애플리케이션을 함께 사용하거나, httpd 서버를 간단한 로드밸런싱을 위해 사용해야 할 때 필요하기 때문

Jetty는 왜 사용하는가?
- 가볍고 성능이 빠르기 때문에










참고사이트 : [https://baek-kim-dev.site/119]
profile
어제의 나보다 나은 오늘의 내가 되자!🧗‍♂️

0개의 댓글