[Spring] CGI vs Servlet
1. CGI(Common Gateway Interface)
- 웹 서버와 웹 애플리케이션(CGI 프로그램) 사이의 정보 전달 규칙
- 웹 서버와 웹 애플리케이션의 제조 회사가 다르면 서로 통신을 할 수 없기 때문에 만들어짐
- CGI 프로그램는 브라우저가 요청시 각각의 process를 생성하여 동적 컨텐츠를 처리
- process를 생성하기 때문에 서버의 자원을 많이 씀
2. Servlet
- 웹 서버에서 실행시킬 수 있는 자바 애플리케이션
- 브라우저 요청마다 Request, Response 객체를 생성
- → 각각의 Request와 Response 객체를 사용하여, HTTP정보를 쉽게 사용할 수 있음
- process대신 thread를 생성하여 동적 컨텐츠를 처리
- 서블릿 컨테이너가 관리
- 서블릿의 생명주기 관리 및 멀티 쓰레드 처리 지원
3. Servlet Container
- 서블릿의 생명주기를 관리하는 컨테이너
init()
: 매 requst 마다 처음 load될 때 실행service()
: 매 reqeust 마다 새로운 thread에 의해 호출destroy()
: servlet instance를 삭제할 때 호출
- 자바 프로그램을 실행하려면 JVM이 필요
- but, JVM은 CGI 프로그램이 아니기 때문에 웹 서버가 실행X
- 즉, 자바 프로그램 관리 서버에 JVM을 두어 자바 프로그램을 실행 가능하게 함
- 여기서 자바 프로그램 관리 서버를 서블릿 컨테이너, 자바 프로그램을 서블릿이라고 함
※ 참고
'FRAMEWORK > [SPRING]' 카테고리의 다른 글
[Spring] HttpMessageConverter (0) | 2022.06.06 |
---|---|
[Spring] Spring MVC 구조 (0) | 2022.06.05 |
[Spring] Web Server vs WAS (0) | 2022.06.02 |
스프링 핵심 원리 - 기본편2 (0) | 2021.08.23 |
스프링 핵심 원리 - 기본편1 (0) | 2021.08.14 |