728x90
동적 페이지는 사용자와 상호작용하며 어떤 버튼을 누르면 이벤트가 작동하는 등으로 작동해야한다.
동적 웹 페이지에서 상호작용을 위해 필요한 것이 WAS이다.
WAS
- 사용자 컴퓨터나 장치에 어플리케이션을 수행해주는 미들웨어이다. 주로 동적 서버 컨텐츠를 수행하는 것으로 웹 서버와 다르며 데이터 베이스 서버와 같이 작동하게 된다.
- WAS는 Web Server의 기능도 가지고있지만 Web Container와 구분되기 때문에 구조적으로 분리되었다. 위 사진을 보면 WAS는 웹서버와 컨테이너를 모두 포함한다.
- 덕분에 사용자의 다양한 요구에 맞춰 웹 서비스를 제공할 수 있으며, WAS는 JSP, Servlet 등 구동 환경을 제공해주기 때문에 웹 컨테이너 혹은 서블릿 컨테이너라고도 불린다.
Web Service Architecture
클라이언트가 만약 웹 서버에 요청을 보낼 경우
- Web Server는 클라이언트의 요청을 WAS에 보냄
- WAS는 관련된 서블릿을 메모리에 올림
- WAS는 web.xml을 참고하여 해당 Servlet 에 대한 쓰레드를 생성함
- HttpServletRequest 와 HttpServletResponse 객체를 생성하여 서블릿에 전달함.
- 쓰레드는 서블릿의 서비스 메소드를 호출함
- get, post 메소드는 인자에 맞게 생성된 동적 페이지를 리스폰스 객체에 담아 WAS에 전달함
- WAS는 Response 객체를 HttpResponse 형태로 바꾸어 Web Server에 전달함
- 생성된 스레드를 종료하고 두 HttpServletRequest, Response 객체를 제거함
그렇다면 Web Server는 어떻게 만들까
Apache
- World Wide WebServer 용 소프트웨어로 HTTP 아파치 서버라고도 불리는 웹 서버이다. 리눅스나 윈도우 등 거의 모든 운영체제에서 사용할 수 있으며 구축이 쉽고 다양한 추가기능이 있음.
- 즉 HTTP요청을 처리하는 웹 서버
Tomcat
- 위에서 보았던 WAS는 웹서버와 웹 컨테이너가 합쳐진 형태였다. 톰캣은 그 중 서블릿 컨테이너만 있는 WAS이다.
- 컨테이너 : JSP, Servlet을 실행할 수 있는 소프트웨어
- 서블릿 : 클라이언트의 요청을 받고 요청을 처리하여 결과를 클라이언트에게 제공하는 자바 인터페이스
- 톰캣은 웹 서버와 연동하여 실행할 수 있는 자바 환경을 제공하며 Java Server Page 와 서블릿이 실행할 수 있는 환경을 제공한다.
아파치 톰캣
- Tomcat이 Apache의 기능을 포함하고 있기 때문에 아파치 톰캣이라 함께 부른다.동적 웹 페이지에서 상호작용을 위해 필요한 것이 WAS이다.WAS
- 사용자 컴퓨터나 장치에 어플리케이션을 수행해주는 미들웨어이다. 주로 동적 서버 컨텐츠를 수행하는 것으로 웹 서버와 다르며 데이터 베이스 서버와 같이 작동하게 된다.
- WAS는 Web Server의 기능도 가지고있지만 Web Container와 구분되기 때문에 구조적으로 분리되었다. 위 사진을 보면 WAS는 웹서버와 컨테이너를 모두 포함한다.
- 덕분에 사용자의 다양한 요구에 맞춰 웹 서비스를 제공할 수 있으며, WAS는 JSP, Servlet 등 구동 환경을 제공해주기 때문에 웹 컨테이너 혹은 서블릿 컨테이너라고도 불린다.
- Web Server는 클라이언트의 요청을 WAS에 보냄
- WAS는 관련된 서블릿을 메모리에 올림
- WAS는 web.xml을 참고하여 해당 Servlet 에 대한 쓰레드를 생성함
- HttpServletRequest 와 HttpServletResponse 객체를 생성하여 서블릿에 전달함.
- 쓰레드는 서블릿의 서비스 메소드를 호출함
- get, post 메소드는 인자에 맞게 생성된 동적 페이지를 리스폰스 객체에 담아 WAS에 전달함
- WAS는 Response 객체를 HttpResponse 형태로 바꾸어 Web Server에 전달함
- 생성된 스레드를 종료하고 두 HttpServletRequest, Response 객체를 제거함
- World Wide WebServer 용 소프트웨어로 HTTP 아파치 서버라고도 불리는 웹 서버이다. 리눅스나 윈도우 등 거의 모든 운영체제에서 사용할 수 있으며 구축이 쉽고 다양한 추가기능이 있음.
- 즉 HTTP요청을 처리하는 웹 서버
- 위에서 보았던 WAS는 웹서버와 웹 컨테이너가 합쳐진 형태였다. 톰캣은 그 중 서블릿 컨테이너만 있는 WAS이다.
- 컨테이너 : JSP, Servlet을 실행할 수 있는 소프트웨어
- 서블릿 : 클라이언트의 요청을 받고 요청을 처리하여 결과를 클라이언트에게 제공하는 자바 인터페이스
- 톰캣은 웹 서버와 연동하여 실행할 수 있는 자바 환경을 제공하며 Java Server Page 와 서블릿이 실행할 수 있는 환경을 제공한다.
- Tomcat이 Apache의 기능을 포함하고 있기 때문에 아파치 톰캣이라 함께 부른다.
'Dev > Spring Boot' 카테고리의 다른 글
Java - Stream 으로 코드 최적화 (0) | 2024.07.17 |
---|---|
Servlet - HttpServlet 사용법 (Request , Response) (0) | 2024.06.04 |
API 최적화1 - N + 1 문제, Lazy 메커니즘, 패치조인 (0) | 2024.03.19 |
Spring Boot - 로그를 남기는 법 : @SLF4J (0) | 2024.02.28 |
Spring Boot 외부 파일 경로 설정 (2) | 2024.01.09 |