반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |
Tags
- 스프링부트
- JPA
- thymeleaf
- DI
- 필드 주입
- 스프링 부트 기본
- kafka
- resultMap
- springboot
- jdbc
- spring
- Javascript
- Effective Java
- SQL
- 싱글톤
- db
- 스프링 빈
- @Configuration
- assertThrows
- java
- DIP
- 스프링 부트
- 스프링
- 스프링 부트 입문
- 스프링 프레임워크
- assertThat
- sqld
- 생성자 주입
- mybatis
- 스프링 컨테이너
Archives
- Today
- Total
선 조치 후 분석
서블릿(Servlet) 그리고 서블릿 컨테이너(Servlet Container) 본문
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
'Language > Java' 카테고리의 다른 글
[Java] Java8 default Method 개념 정리 (0) | 2023.10.16 |
---|---|
[Spring] @JsonIgnoreProperties, @JsonIgnore, @JsonIgnoreType 차이 및 개념 (0) | 2023.09.21 |
[Java] serialVersionUID (0) | 2023.09.12 |
[Java] toString() vs valueOf() 차이 및 null 체크 (0) | 2023.09.12 |
POJO vs EJB 차이점은? (0) | 2023.08.25 |