웹서버(WS)
- 정적인 파일(html,js,이미지 파일등)을 제공하기 위한 서버로, HTTP프로토콜에 의해 제공
- 정적 파일로만 처리가능한 것은 WAS로 요청을 넘기지 않고 바로 요청 처리
- 요청이 많을 경우 웹서버에서는 웹문서를 WAS에서는 JSP페이지를 양분하여 처리 함으로서 서버의 부담을 줄여주는 역활도 가능
ex) apache, nginx, gws, etc...
웹 어플리케이션 서버(Web Application Server)
- JSP,APS,PHP등 사용자의 입력을 받아 무언가를 처리하고 결과를 보여주는 동적인 데이터를 처리하는 웹서버(DB조회, 로직처리가 요구되는 컨텐츠)
- 일반적으로 웹서버기능도 내장하고 있어 웹서버 없이도 서비스가능
- 컨테이너, 웹컨테이너, 서블릿 컨테이너라고도 부름
*JSP, Servlet을 실행시킬 수 있는 소프트웨어 = 컨테이너
- 동작 프로세서
- 웹서버로부터 요청이 오면 컨테이너가 받아서 처리
- 컨테이너 web.xml을 참조하여 해당 서블릿에 대한 쓰레드를 생성하고 httpServletRequest와
httpServletResponse 객체를 생성하여 전달 - 컨테이너 서블릿 호출
- 호출된 서블릿의 작업을 당담하게 된 쓰레드는 doPost()또는 doGet() 호출
- 호출된 doPost(), doGet() 메소드는 생성되는 동적페이지를 Response 객체에 담아 컨테이너에 전달
- 컨테이너는 전달받은 response객체를 HttpResponse 형태로 바꿔 웹버서에 전달하고 생성되었던 쓰레드
를 종료 후HttpServletRequest, HttpServletResponse 객체를 소멸 시킨다
WS 와 WAS를 나누어야하는 이유
- 데이터처리 방식이 달라 정적 컨테츠를 굳이 WAS에 부하를 줄필요가 없다
- 사용자들에게 WAS를 공개할 필요가 없다(보안)
- 여러대의 WAS를 연결 가능(로드밸런싱, fail over, fail back 처리에 유리)
'개념 정리' 카테고리의 다른 글
콜백 지옥 (0) | 2022.06.17 |
---|---|
동기 와 비동기 (0) | 2022.06.15 |
Node.js를 사용하는 이유 (0) | 2022.06.13 |
var , let , const 차이 (0) | 2022.06.09 |