WEB

웹서버. 클라이언트에게 HTML, CSS, 이미지 등의 정적 페이지를 제공한다.

(대표적인 웹 서버 : APACHE)

WAS

HTTP프로토콜을 통해 사용자의 컴퓨터나 장치에 애플리케이션을 수행해주는 미들웨어로써, 주로 동적 서버 컨텐츠를 수행하는 것으로 WEB과 구별된다. 주로 DB서버와 함께 수행한다.

(대표적인 WAS : 톰캣)

 

WEB이 정적 콘텐츠만 제공하는 것 만은 아니다. WAS에서 동적 컨텐츠를 받아와서 클라이언트에게 제공하기도 함.

 

WEB이 필요한 이유?

WAS : 동적 컨텐츠(DB조회 및 다양한 동적 로직)를 처리하는 것에 집중

WEB : 간단한 정적 컨텐츠를 도맡아 처리

→ 둘의 기능을 분리함으로써 서버의 부하를 방지하고 효율을 높임. (속도가 빨라진다)

 

클라이언트 → WEB → WAS → DB 구조의 동작과정

  1. WEB은 웹 브라우저 클라이언트로부터 HTTP요청을 받음
  2. WEB은 받은 요청(Request)을 WAS에 보낸다.
  3. WAS는 관련된 Servlet을 메모리에 올린다.
  4. WAS는 web.xml을 참조하여 해당 Servlet에 대한 Thread를 생성한다.
  5. HttpServletRequest와 HttpServletResponse 객체를 생성해 Servlet에 전달한다.
  6. Thread는 Servlet의 service()메서드를 호출한다.
  7. service() 메서드는 요청에 맞게 get또는 post메서드를 호출한다.
  8. get 또는 post 메서드는 인자에 맞게 생성된 적절한 동적 페이지를 Response객체에 담아 WAS에 전달한다.
  9. WAS는 Response객체를 HttpResponse형태로 바꾸어 웹 서버에 전달한다.
  10. 생성된 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