CGI 스크립트의 환경변수
42Seoul/웹서버

CGI 스크립트의 환경변수

참고 1: 위키백과 - CGI

참고 2: IBM Documentation

 

CGI 란?

 공용 게이트웨이 인터페이스(Common Gateway Interface; CGI)는 웹 서버 상에서 사용자 프로그램을 동작시키기 위해, 데이터를 주고받는 방식 또는 규약입니다. 우리는 동적인 웹 서버를 구현하기 위해, 서버에서 외부 프로그램을 불러내고 그 처리 결과를 클라이언트에 송신합니다.

 

 

CGI 스크립트의 환경 변수

CGI를 실행할 때 서버와 브라우저는 각자의 환경변수를 교환하며, 이는 대부분 서버에서 전달된 요청에 대한 데이터를 나타냅니다.

 

우리가 구현할 CGI에서는 다음과 같은 환경변수를 설정하여 전달합니다.

변수 설명 디폴트
AUTH_TYPE 인증 방법(BASIC, SSL 등). null (인증되지 않음)
CONTENT_LENGTH 요청 본문의 길이(바이트). -1 (알 수 없음)
CONTENT_TYPE 요청 본문의 MIME 유형. null (알 수 없음)
GATEWAY_INTERFACE CGI 스펙의 버전. CGI/1.1
PATH_INFO 스크립트를 호출한 HTTP 요청의 추가 경로. CGI 스크립트로 해석할 경로.  
PATH_TRANSLATED PATH_INFO의 변환. 스크립트의 가상경로를, 실제 호출 할 때 사용되는 경로로 맵핑.
요청 URI의 PATH_INFO 구성요소를 가져와, 적합한 가상 : 실제 변환을 수행하여 맵핑.
 
QUERY_STRING 경로 뒤의 요청 URL에 포함된 조회 문자열.  
REMOTE_ADDR 요청을 보낸 클라이언트 IP 주소.  
REMOTE_IDENT Identification. 클라이언트에서 GCI 프로그램을 실행시킨 사용자.  
REMOTE_USER 사용자가 인증된 경우 이 요청을 작성한 사용자의 로그인을 의미. null (인증되지 않음)
REQUEST_METHOD 요청 HTTP 메소드 이름. (GET, POST, PUT)  
REQUEST_URI 현재 페이지 주소에서 도메인을 제외한 값.  
SCRIPT_NAME HTTP 요청의 첫 번째 라인에 있는 조회 문자열까지의 URL.  
SERVER_NAME 요청을 수신한 서버의 호스트 이름.  
SERVER_PORT 요청을 수신한 서버의 포트 번호.  
SERVER_PROTOCOL 요청이 사용하는 프로토콜의 이름과 버전.
protocol/majorVersion.minorVersion 양식
(예: HTTP/1.1)
 
SERVER_SOFTWARE 서블릿이 실행 중인 컨테이너의 이름과 버전.