Language/Java
서블릿(Servlet) 그리고 서블릿 컨테이너(Servlet Container)
JB1104
2023. 9. 12. 20:50
728x90
반응형
SMALL
서블릿(Servlet)
자바 웹 애플리케이션을 구성하는 핵심 구성 요소 중 하나로, 웹 서버에서 실행되어 클라이언트의 HTTP 요청을 처리하고
동적인 컨텐츠를 생성하는 자바 클래스이다.
서블릿은 웹 어플리케이션애플리케이션 서버(WAS)에서 실행되며 주로 웹 애플리케이션의 비즈니스 로직을 처리하고 결과를 생성한다.
처리순서
- 사용자가 웹 서버에 동적인 컨텐츠를 요청하면 웹 서버가 해당 요청을 받는다.
- 웹 서버는 해당 요청을 웹 어플리케이션 서버(WAS)에 전달한다.
- 웹 어플리케이션 서버(WAS)는 요청에 맞는 서블릿을 실행하여 동적인 컨텐츠를 생성한다.
- 웹 어플리케이션 서버(WAS)는 생성된 동적 컨텐츠를 웹 서버로 전달한다.
- 웹 서버는 생성된 동적 컨텐츠를 사용자의 웹 브라우저로 전송하여 화면에 보여준다.
웹 어플리케이션 서버 (WAS) == 웹 컨테이너 (Web Container) == 서블릿 컨테이너 (Servlet Container)
서블릿 컨테이너(Servlet Container)
웹 어플리케이션을 실행하고 관리하는 환경을 제공하는 소프트웨어 컴포넌트이다.
웹 어플리케이션의 동적인 컨텐츠를 생성하고 처리하기 위해 서블릿을 실행하며, 웹 서버와 웹 애플리케이션 사이의
인터페이스 역할을 수행한다.
서블릿 컨테이너는 웹 어플리케이션을 실행하기 위해 필요한 모든 환경을 제공한다.
주요 역할
- 서블릿의 라이프사이클 관리 : 서블릿의 초기화, 서비스, 소멸과 같은 라이프사이클 관리 수행
- 요청과 응답 처리 : 웹 클라리언트의 요청을 받아 해당 서블릿을 실행하고,
서블릿이 생성한 동적인 컨텐츠를 웹 클라이언트에게 전송 - 스레드 관리 : 클라이언트 요청마다 별도의 스레드를 생성하여 동시 다중 접속 처리
- 보안과 인증 관리 : 사용자 인증, 권한 부여, 보안 설정을 관리하여 웹 애플리케이션의 보안을 유지
- 세션 관리 : 클라이언트 세션을 유지하고 관리하여 상태를 저장하고 추적
- JSP 처리 : JSP를 서블릿으로 변환하고 실행하여 동적인 웹 페이지 생성
- 에러 처리 : 서블릿 에서 발생하는 예외와 오류를 처리
대표적인 서블릿 컨테이너로는 Apache Tomcat, Jetty, WildFly 등이 있다.
웹 서버 (Web Server)
클라이언트(웹 브라우저)의 요청을 받아 정적인 리소스나 파일을 제공하는 소프트웨어
주요 역할
- 적적인 컨텐츠 제공 : HTML, CSS, 이미지 등을 클라이언트에게 전달
(정적인 컨텐츠 = 고정된 형태, 동일한 내용을 가진 컨텐츠) - HTTP 요청 처리 : 클라이언트로부터 온 HTTP 요청을 받아들이고, 해당 요청에 따라 처리 수행
- 가볍고 빠른 처리 : 주로 정적인 컨텐츠를 제공하는 역할이라, 간단하고 빠르게 응답 가능
- 보안 기능 : 클라이언트와의 통신을 암호화하여 보안을 강화하는 SSL/TLS 인증서 제공
- 로드 밸런싱 : 여러 대의 웹 서버를 사용하여 로드 밸런싱을 구현하여 트래픽 분산
대표적인 웹 서버로는 Apache, Nginx 등이 있다.
728x90
반응형
LIST