- 공통 게이트웨이 인터페이스(CGI)는 외부 게이트웨이 프로그램이 HTTP 서버와 같은 정보 서버와 인터페이스하기 위한 표준입니다.
- 현재 버전은 CGI/1.1이고 CGI/1.2는 진행 중입니다.
웹 브라우징
CGI의 개념을 이해하기 위해 하이퍼 링크를 클릭하여 특정 웹 페이지나 URL을 탐색할 때 어떤 일이 발생하는지 살펴보겠습니다.
- 브라우저가 HTTP 웹 서버에 접속하여 URL, 즉 파일 이름을 요구합니다.
- 웹 서버는 URL을 구문 분석하고 파일 이름을 찾습니다. 해당 파일을 찾으면 브라우저로 다시 보내고, 그렇지 않으면 잘못된 파일을 요청했음을 나타내는 오류 메시지를 보냅니다.
- 웹 브라우저는 웹 서버로부터 응답을 받아 수신된 파일이나 오류 메시지를 표시합니다.
그러나 특정 디렉토리의 파일이 요청될 때마다 해당 파일이 다시 전송되지 않도록 HTTP 서버를 설정할 수 있습니다. 대신 프로그램으로 실행되고 해당 프로그램이 출력하는 모든 내용은 브라우저가 표시할 수 있도록 다시 전송됩니다. 이 기능을 Common Gateway Interface 또는 CGI라고 하며 프로그램을 CGI 스크립트라고 합니다. 이러한 CGI 프로그램은 Python 스크립트, PERL 스크립트, 쉘 스크립트, C 또는 C++ 프로그램 등이 될 수 있습니다.
CGI 아키텍처 다이어그램
웹 서버 지원 및 구성
CGI 프로그래밍을 진행하기 전에 웹 서버가 CGI를 지원하고 CGI 프로그램을 처리하도록 구성되어 있는지 확인하십시오. HTTP 서버에서 실행되는 모든 CGI 프로그램은 미리 구성된 디렉토리에 보관됩니다. 이 디렉토리를 CGI 디렉토리라고 하며 규칙에 따라 /var/www/cgi-bin으로 이름이 지정됩니다. 규칙에 따라 CGI 파일의 확장자는 다음과 같습니다. cgi이지만 python 확장자가 .py인 파일도 유지할 수 있습니다.
기본적으로 Linux 서버는 /var/www의 cgi-bin 디렉토리에 있는 스크립트만 실행하도록 구성됩니다. CGI 스크립트를 실행할 다른 디렉토리를 지정하려면 httpd.conf 파일에서 다음 행을 주석 처리하십시오. -
<Directory "/var/www/cgi-bin"> AllowOverride None Options ExecCGI Order allow,deny Allow from all </Directory> <Directory "/var/www/cgi-bin"> Options All </Directory>
여기에서는 웹 서버가 성공적으로 실행되고 있고 Perl이나 Shell 등과 같은 다른 CGI 프로그램을 실행할 수 있다고 가정합니다.