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

내용 삭제됨 내용 추가됨
편집 요약 없음
15번째 줄:
 
== 사양 ==
CGI의 사양은 [[NCSA]]에 의해 최초로 정의 ([[NCSA HTTPd]]에 있음) 되어, 현재의 최신판은 CGI1.1이다.<ref>http://hoohoo.ncsa.uiuc.edu/cgi/interface.html</ref> 2004년에[[Request for Comments|RFC]] 3875이 되었다.<ref>http://www.ietf.org/rfc/rfc3875.txt</ref>
 
CGI는 전형적으로는 아래와 같은 동작이 기대된다. CGI를 경유해 실행되는 프로그램을 '''CGI 프로그램'''이라고 부른다.
27번째 줄:
** 클라이언트에서의 HTTP요청 BODY부분은 CGI 프로그램 표준입력에 들어간다. 또, 그 입력의 길이가 환경변수 CONTENT_LENGTH에 설정되어 있다. 그것은 HTML 폼에서 POST메서드로 입력을 받는 것이 편리하다.
** CGI 프로그램에 대응하는 가상 패스 후에, 더욱이 여분의 패스가 계속 이어진 경우 그 정보는 환경변수 PATH_INFO에 격납(格納)되어 PATH_INFO를 웹 서버의 가상 패스로 해석한 때에 대응해야 하는 물리 패스가 환경변수 PATH_TRANSLATED 에 격납된다. 이 방식도 CGI 프로그램에 사용자 측으로부터 변수를 전하는 목적에 자주 사용된다.
* 프로그램이 [[표준입력]]에 출력된 데이터는 웹 서버를 경우한 클라이언트에 보내진다. 이 데이터는 정당한 [[HTTP헤더]]로 시작하지 않으면 안된다안 된다.
* 단, 몇 개의 특별한 헤더 필드는「서버 [[디렉티브]]」로 해석되어, 웹 서버의 거동 (상태 코드 등) 에 환경을 부여한다. 그 밖의 모든 헤더 필드는 그 상태 그대로 클라이언트에 송신된다.
* 현재의 [[월드 와이드 웹|WWW]]에서는 HTML이 중심적인 역할을 하고 있어, CGI 프로그램은 HTML을 출력하는 경우가 압도적으로 많다.
** 영상 데이터 등을 출력하는 것도 있다. (이것은 [[엑세스 카운터]] 등을 조작할 때에 사용된다.)