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

내용 삭제됨 내용 추가됨
VolkovBot (토론 | 기여)
Chobot (토론 | 기여)
잔글 로봇이 더함: eu:Common Gateway Interface; 예쁘게 바꿈
10번째 줄:
대표적인 어플리케이션에는 [[전자게시판]], [[엑세스카운터]], [[위키|Wiki]]나 [[블로그|Blog]]시스템 등이 있다.
 
근래에는, Web서버의 프로세스로서 인터프리터를 상주시킴으로서, CGI부터 프로그램을 호출해 오버헤드를 감소시켜, 퍼포먼스를 향상시킨[[Java Servlet]]나 [[mod_perlmod perl]], [[mod_phpmod php]], [[FastCGI]] 등도 출현하고 있다.
 
== CGI에 관한 자주 있는 오해 ==
24번째 줄:
CGI는, 전형적으로는 아래와 같은 동작이 기대된다. CGI를 경유해 실행되는 프로그램을, '''CGI프로그램'''이라고 부른다.
 
* CGI프로그램은 퀩서버가 클라이언트로부터 리퀘스트에 응답해 동작한다.
*: 전형적으로는, 웹서버의 공개영역에 설치된 프로그램에 대응하는 [[Uniform Resource Identifier|URI]]으로 리퀘스트가 있으면, 서버는 그 프로그램을 CGI의 결정에 따라 호출한다.
* CGI프로그램으로의 정보 입력은 커맨드라인 [[인수]], [[환경변수]], [[표준입력]]에 의해 이루어진다.
** 웹서버가 프로그램을 호출하는 시점에서 얼마의 환경변수를 정의하는 것이 결정된다.
** 특히, 클라이언트가 서버에 요구한 URI의 안, 검색문자열(Query String)이 환경변수 QUERY_STRING 에 설정되기 때문에, 그것은 [[HyperText Markup Language|HTML]]폼에서 GET메서드로 입력을 받는 것이 편리하다.
** QUERY_STRING에 문자'='가 포함되어 있지 않은 경우에, 서버는 QUERY_STRING의 내용을 커맨드라인 인수로서 CGI프로그램을 넘긴다. 이것은HTML의ISINDEX요소를 이용하여 송신된 정보를 다루는데 편리하다.
** 클라이언트에서의 HTTP리퀘스트 BODY부분은 CGI프로그램 표준입력에 들어간다. 또, 그 입력의 길이가 환경변수 CONTENT_LENGTH에 설정되어 있다. 그것은 HTML폼에서 POST메서드로 입력을 받는 것이 편리하다.
** CGI프로그램에 대응하는 가상 패스 후에, 더욱이 여분의 패스가 계속 이어진 경우 그 정보는 환경변수 PATH_INFO에 격납(格納)되어 PATH_INFO를 웹 서버의 가상 패스로 해석한 때에 대응해야하는 물리 패스가 환경변수 PATH_TRANSLATED 에 격납된다. 이 방식도 CGI프로그램에 유저측으로부터 파라메터를 전하는 목적에 자주 사용된다.
* 프로그램이 [[표준입력]]에 출력된 데이터는 웹서버를 경우한 클라이언트에 보내진다. 이 데이터는 정당한 [[HTTP헤더]]로 시작하지 않으면 안된다.
* 단, 몇개의 특별한 헤더 필드는「서버 [[디렉티브]]」로서 해석되어, 웹서버의 거동(스테이터스 코드 등)에 환경을 부여한다. 이것 이외의 모든 헤더 필드는 그 상태 그대로 클라이언트에 송신된다.
* 현재의[[World Wide Web|WWW]]에서는 HTML이 중심적인 역할을 하고 있어, CGI프로그램은 HTML을 출력하는 케이스가 압도적으로 많다.
** 영상 데이터 등을 출력하는 것도 있다.(이것은 [[엑세스 카운터]]등을 조작할 때에 사용된다.
 
<references/>
59번째 줄:
[[es:Interfaz de entrada común]]
[[et:CGI]]
[[eu:Common Gateway Interface]]
[[fi:CGI]]
[[fr:Common Gateway Interface]]