공용 게이트웨이 인터페이스: 두 판 사이의 차이

내용 삭제됨 내용 추가됨
175.113.105.211(토론)의 14046040판 편집을 되돌림
편집 요약 없음
3번째 줄:
웹 서버 프로그램의 기능의 주체는 미리 준비된 정보를 이용자([[클라이언트]])의 요구에 응답해 보내는 것이다.그 때문에 서버 프로그램 그룹에서는 정보를 그 장소에서 동적으로 생성하고 클라이언트에 송신하려하는 조합을 작성하는 것이 불가능했다. 서버 프로그램에서 다른 프로그램을 불러내고, 그 처리 결과를 클라이언트에 송신하는 방법이 고안되었다. 이를 실현하기 위한 서버 프로그램과 외부 프로그램과의 연계법을 정한 것이 '''CGI'''이다.
 
CGI는 환경변수나 표준입출력을 다룰 수 있는 [[프로그램 언어]]에서라면 언어의 구별을 묻지 않고 확장하여 이용하는 것이 가능하나, 실행속도나 텍스트 처리의 용이함 등의 균형에 의해 [[펄 (프로그래밍 언어)|펄]]이 사용되는 경우가 많았다. 최근{{언제}}에는 펄뿐 아니라 [[파이썬]], [[루비 (프로그래밍 언어)|루비]] 등도 널리 쓰이고 있다.
 
대표적인 애플리케이션에는 [[전자게시판]], [[접속 카운터]], [[위키]]나 [[블로그]] 시스템 등이 있다.
 
근래{{언제}}에는 웹 서버의 프로세스로서 인터프리터를 상주시킴으로써, CGI로부터 프로그램을 호출해 부하를 줄임으로써 성능을 개선한 [[Java자바 Servlet서블릿]]이나 [[mod perl]], [[mod php]], [[FastCGI]] 등도 공개되었다.
 
== CGI에 관한 자주 있는 오해 ==
이름에서 알 수 있듯이, CGI는 어디까지나 인터페이스이며, 특정 플랫폼에 의존하지 않고, 웹 서버 등으로부터 외부 프로그램을 호출하는 조합을 가리킨다.
 
그러므로 그 조합을 사용하여 기동되는 프로그램 본체를 CGI로 호칭하는 것은 잘못된 것이다. 또, [[1990년대]] 후반의 CGI를 사용한 프로그램은 [[펄 (프로그래밍 언어)|펄]]이 대부분인 까닭에 CGI와 펄, 또는 그것에 속하는 특정 언어라는 인식도 널리 퍼져 있으나, 이것도 잘못된 것이다..
 
== 사양 ==