WEB
웹서버. 클라이언트에게 HTML, CSS, 이미지 등의 정적 페이지를 제공한다.
(대표적인 웹 서버 : APACHE)
WAS
HTTP프로토콜을 통해 사용자의 컴퓨터나 장치에 애플리케이션을 수행해주는 미들웨어로써, 주로 동적 서버 컨텐츠를 수행하는 것으로 WEB과 구별된다. 주로 DB서버와 함께 수행한다.
(대표적인 WAS : 톰캣)
WEB이 정적 콘텐츠만 제공하는 것 만은 아니다. WAS에서 동적 컨텐츠를 받아와서 클라이언트에게 제공하기도 함.
WEB이 필요한 이유?
WAS : 동적 컨텐츠(DB조회 및 다양한 동적 로직)를 처리하는 것에 집중
WEB : 간단한 정적 컨텐츠를 도맡아 처리
→ 둘의 기능을 분리함으로써 서버의 부하를 방지하고 효율을 높임. (속도가 빨라진다)
클라이언트 → WEB → WAS → DB 구조의 동작과정
- WEB은 웹 브라우저 클라이언트로부터 HTTP요청을 받음
- WEB은 받은 요청(Request)을 WAS에 보낸다.
- WAS는 관련된 Servlet을 메모리에 올린다.
- WAS는 web.xml을 참조하여 해당 Servlet에 대한 Thread를 생성한다.
- HttpServletRequest와 HttpServletResponse 객체를 생성해 Servlet에 전달한다.
- Thread는 Servlet의 service()메서드를 호출한다.
- service() 메서드는 요청에 맞게 get또는 post메서드를 호출한다.
- get 또는 post 메서드는 인자에 맞게 생성된 적절한 동적 페이지를 Response객체에 담아 WAS에 전달한다.
- WAS는 Response객체를 HttpResponse형태로 바꾸어 웹 서버에 전달한다.
- 생성된 Thread를 종료하고 HttpServletRequest와 HttpServletResponse객체를 제거한다.
'IT > 잡다' 카테고리의 다른 글
프로세스/스레드 (0) | 2023.04.24 |
---|---|
MVC 웹프레임워크 (0) | 2023.04.24 |
예외처리 (0) | 2023.04.24 |
블록체인(PO W형) (0) | 2023.04.24 |
CI / CD (0) | 2023.04.24 |