공용 게이트웨이 인터페이스

공용 게이트웨이 인터페이스( 영어: Common Gateway Interface; CGI)는 웹 서버 상에서 사용자 프로그램을 동작시키기 위한 조합이다. 존재하는 많은 웹 서버 프로그램은 CGI의 기능을 이용할 수 있다.

웹 서버 프로그램의 기능의 주체는 미리 준비된 정보를 이용자( 클라이언트)의 요구에 응답해 보내는 것이다. 그 때문에 서버 프로그램 그룹에서는 정보를 그 장소에서 동적으로 생성하고 클라이언트에 송신하려하는 조합을 작성하는 것이 불가능했다. 서버 프로그램에서 다른 프로그램을 불러내고, 그 처리 결과를 클라이언트에 송신하는 방법이 고안되었다. 이를 실현하기 위한 서버 프로그램과 외부 프로그램과의 연계법을 정한 것이 CGI이다.

CGI는 환경변수나 표준입출력을 다룰 수 있는 프로그램 언어에서라면 언어의 구별을 묻지 않고 확장하여 이용하는 것이 가능하나, 실행속도나 텍스트 처리의 용이함 등의 균형에 의해 이 사용되는 경우가 많았다. 최근[ 언제?]에는 펄뿐 아니라 파이썬, 루비 등도 널리 쓰이고 있다.

대표적인 애플리케이션에는 전자게시판, 접속 카운터, 위키블로그 시스템 등이 있다.

근래[ 언제?]에는 웹 서버의 프로세스로서 인터프리터를 상주시킴으로써, CGI로부터 프로그램을 호출해 부하를 줄임으로써 성능을 개선한 자바 서블릿이나 mod perl, mod php, FastCGI 등도 공개되었다.

역사

1993년 NCSA 팀은 www-talk 메일링 리스트의 명령 줄 실행 파일을 호출하는 사양을 작성하였으나 [1] NCSA는 더 이상 이 사양을 호스팅하지 않고 있다. [2] [3] 기타 웹 서버 개발자들이 이를 수용하였고 그 이후로 웹 서버의 표준으로 자리잡고 있다. Ken Coar가 주도하는 워크 그룹이 1997년 11월 시작되어 CGI의 NCSA 정의가 공식적으로 확립되었다. [4] 이를 통해 RFC 3875 사양이 탄생되었으며 이는 CGI 버전 1.1을 기술한다.

En otros idiomas