CGI Development info

CGI
(common gateway interface)

 

 CGI는 웹서버가 하지 못하는 일을 외부의 프로그램을 이용할 수 있게 하는 표준적인 방법, 또는 그 방법에 따라 수행되는 외부 응용 프로그램들을 가리킨다.

 일반적으로 웹 서버가 브라우저에게 넘겨주는 HTML 자료는 정적인 자료이다. 즉, 일정한 텍스트 화일이다. 그러나 질의를 통해서버의 데이타베이스로부터, 만족하는 레코드만의 출력을 원할 경우, 되돌려지는 문서는 질의에 따라 동적으로 변화해야 한다.CGI는 바로 이러한 역할을 수행하기 위해 존재하는 인터페이스 프로그램이다.

보통 이 CGI로 동작되는 응용 프로그램을 게이트웨이 스크립트(Gateway Script)라고 부른다. 게이트웨이 스크립트는 웹브라우저에 의해 웹서버에서 동작되는 프로그램을 말한다. 이 게이트웨이 스크립트를 통해서 웹서버는 보통 그 시스템의 다른 프로그램들과 연결된다. 이 게이트웨이 프로토콜은 반드시 특수한 스크립트 파일일필요는 없고, 단지 실행 가능한 프로그램이기만 하면 된다.

 

(1) 게이트웨이 스크립트의 동작 원리

    1) 브라우저가 서버에게 게이트웨이 스크립트의 수행을 요구한다.
    2) 서버는 게이트웨이 스크립트에 해당하는 스크립트를 수행한다.
    3) 게이트웨이 스크립트는 외부 프로그램이나 DB를 수행한다.
    4) 수행결과를 다시 서버에 넘겨준다
    5) 넘겨받은 수행 결과를 브라우저에게 다시 전송한다.

보통 이런 관계로 브라우저와 서버CGI의 관계가 설정된다. 예를 들어 링크에

    <A HREF="http://somesite.com/cgi-bin/getdate"> Display the Date </A>

라고 설정하고, 웹서버측에서 getdate 스크립트를 설치하면 다음과 같이 된다.

#!/bin/sh
echo Context-type: text/html
echo 
/bin/date

이 스크립트를 설치하면 이에 해당하는 동작을 하게 된다.

CGI는 실행가능한 프로그램이므로, 시스템에 실행 화일로 존재하게 된다. Web 서버는 CGI프로그램의 내용을 보내는 것이 아니라, 실행결과를 보내야 한다. 그러므로, 서버가 실행시키는 프로그램이 CGI다. 이를 위해 CGI 프로그램들은 특정한 디렉토리에 존재하게 된다. 이 디렉토리는 Web 마스터가 직접 관리하며, 일반 사용자가 CGI프로그램을 생성시킬 수는 없다. NCSA HTTPd 서버에서는 /cgi-bin이라는 디렉토리가 할당된다. 이 곳에 CGI프로그램들이 놓여지게 된다.

CGI 응용 프로그램의 작성에서 가장 많이 사용되는 언어는 C, C++, Java, Perl 등이다.


출처 : http://blog.naver.com/teastful?Redirect=Log&logNo=140115832380


핑백

덧글

댓글 입력 영역