두 손끝의 창조자

Servlet이란? 본문

프로그래밍언어/Java

Servlet이란?

codinglog 2020. 8. 5. 14:02

서블릿이란?

서블릿은 컨테이너로 관리되는 동적 콘텐츠를 생성하는 Java ™ 기술 기반 웹 컴포넌트입니다. 다른 Java 기술 기반 구성 요소와 마찬가지로 서블릿은 플랫폼에 독립적인 Java 클래스로, 플랫폼에 중립적인 바이트 코드로 컴파일되어 Java 기술 지원 웹 서버에 동적으로 로드되어 실행될 수 있습니다.

서블릿 엔진이라고도하는 컨테이너는 서블릿 기능을 제공하는 웹 서버 확장입니다. 서블릿은 서블릿 컨테이너에 의해 구현된 요청 / 응답 패러다임을 통해 웹 클라이언트와 상호 작용합니다.

서블릿 컨테이너란?

서블릿 컨테이너는 요청 및 응답이 전송되는 네트워크 서비스를 제공하고 MIME 기반 요청을 디코딩하며 MIME 기반 응답을 형식화하는 웹 서버 또는 애플리케이션 서버의 일부입니다. 서블릿 컨테이너는 또한 라이프 사이클을 통해 서블릿을 포함하고 관리합니다.

서블릿 컨테이너는 호스트 웹 서버에 내장되거나 해당 서버의 기본 확장 API를 통해 웹 서버에 추가 구성 요소로 설치 될설치될 수 있습니다. 서블릿 컨테이너는 웹 사용 가능 응용 프로그램 서버에 내장되거나 설치될 수도 있습니다.

모든 서블릿 컨테이너는 요청 및 응답을위한 프로토콜로 HTTP를 지원해야 하지만 HTTPS (HTTP over SSL)와 같은 추가 요청 / 응답 기반 프로토콜이 지원될 수 있습니다. 컨테이너가 구현해야 하는 HTTP 사양의 필수 버전은 HTTP / 1.0 및 HTTP / 1.1입니다. 컨테이너에는 RFC2616 (HTTP / 1.1)에 설명된 캐싱 메커니즘이 있을 수 있으므로 서블릿으로 전달하기 전에 클라이언트의 요청을 수정하거나, 서블릿에서 생성 한 응답을 클라이언트로 전송하기 전에 수정하거나, 요청 없이 응답할 수 있습니다. RFC2616을 준수하여 서블릿에 전달합니다.

서블릿 컨테이너는 서블릿이 실행되는 환경에 보안 제한을 둘 수 있습니다. Java 플랫폼, Standard Edition (J2SE, v.1.3 이상) 또는 Java Platform, Enterprise Edition (Java EE, v.1.3 이상) 환경에서 이러한 제한 사항은 Java 플랫폼에서 정의한 권한 아키텍처를 사용하여 설정해야합니다. 예를 들어, 고급 응용 프로그램 서버는 컨테이너의 다른 구성 요소에 부정적인 영향을 미치지 않도록 스레드 개체의 생성을 제한할 수 있습니다.

Java SE 7은 서블릿 컨테이너를 빌드해야하는 기본 Java 플랫폼의 최소 버전입니다.

예시

1. 클라이언트 (예 : 웹 브라우저)는 웹 서버에 액세스 하여 HTTP 요청을 합니다.
2. 웹 서버가 요청을 수신하고 서블릿 컨테이너로 전달합니다.
서블릿 컨테이너는 호스트 웹 서버와 동일한 프로세스, 동일한 호스트의 다른 프로세스 또는 요청을 처리하는 웹 서버와 다른 호스트에서 실행될 수 있습니다.
3. 서블릿 컨테이너는 해당 서블릿의 구성에 따라 호출할 서블릿을 결정하고 요청 및 응답을 나타내는 객체로 호출합니다.
4. 서블릿은 요청 오브젝트를 사용하여 원격 사용자, 이 요청의 일부로 전송된 HTTP POST 매개 변수 및 기타 관련 데이터를 찾습니다. 서블릿은 프로그래밍된 모든 로직을 수행하고 클라이언트로 다시 전송할 데이터를 생성합니다. 응답 데이터를 통해이 데이터를 클라이언트로 다시 보냅니다.
5. 서블릿이 요청 처리를 완료하면 서블릿 컨테이너는 응답이 올바르게 플러시 되는지 확인하고 제어를 호스트 웹 서버로 다시 리턴합니다.

 

반응형
Comments