CGI(Common Gateway Interface) 프로그램과 서블릿
애플리케이션,데스크톱 애플리케이션
- 사용자가 직접 아이콘을 더블 클릭하거나 명령창을 통해 실행 시키는 프로그램
웹 애플리케이션
- 사용자가 웹 서버를 통해 간접적으로 실행시키는 프로그램
- 서버는 클라이언트가 요청한 프로그램을 찾아서 실행,작업을 수행한 후 웹 서버에게 돌려줌
- 웹 서버는 결과를 토대로 HTTP 형식에 맞추어 웹 브라우저에 전송
- 웹 서버와 프로그램 사이의 데이터를 주고 받는 규칙을 CGI라고 한다
- 웹 서버와 데이터를 주고 받도록 작성된 프로그램을 'CGI 프로그램'이라고 한다
CGI 프로그램
- C나 C++,Java와 같은 컴파일 언어로 작성할 수 있음
- Perl, PHP, Python, VBScript 등 스크립트 언어로도 작성할 수 있음
컴파일 방식
- 기계어로 번역된 코드를 바로 실행하기 때문에 실행 속도가 빠름
- 컴파일하고 재배포해야하는 문제가 있음
스크립트 방식
- 실행할 때마다 소스 코드의 문법을 검증하고 해석해야하므로 실행속도가 느림
- 변경 사항이 발생하면 단지 소스코드를 수정하고 저장만 하면 되기 때문에 편리함
서블릿
- 자바 CGI 프로그램은 C/C++처럼 컴파일 방식임
- 자바로 만든 CGI 프로그램 = 서블릿(Servlet)
- 웹 서버와 직접 데이터를 주고받지 않으며, 전문 프로그램에 의해 관리된다.
서블릿 컨테이너
- 서블릿의 생성과 실행,소멸 등 생명주기를 관리하는 프로그램
- 서블릿을 대신하여 CGI 규칙에 따라 웹 서버와 데이터를 주고 받음
- 서블릿 개발자는 더 이상 CGI 규칙에 대해 알 필요가 없다
- 자바 웹 애플리케이션 개발자는 JavaEE 기술 사양에 포함된 Servlet 규칙에 따라 CGI 프로그램을 만들고 배포한다.