Python CGI 환경 변수란?
CGI(Common Gateway Interface) 프로그램은 서버에서 제공하는 다양한 환경 변수(Environment Variables)에 접근할 수 있습니다. 이러한 환경 변수는 클라이언트의 요청 정보, 서버 정보 등을 담고 있어 CGI 프로그램을 작성할 때 매우 중요한 역할을 합니다.
아래 표는 CGI 프로그램에서 사용할 수 있는 주요 환경 변수들을 정리한 것입니다.
주요 CGI 환경 변수 목록
| 번호 | 변수명 및 설명 |
|---|---|
| 1 | CONTENT_TYPE 콘텐츠의 데이터 타입입니다. 클라이언트가 첨부 데이터를 서버로 전송할 때 사용되며, 대표적인 예로 파일 업로드가 있습니다. |
| 2 | CONTENT_LENGTH 쿼리 정보의 길이입니다. POST 방식 요청에서만 사용할 수 있습니다. |
| 3 | HTTP_COOKIE 설정된 쿠키를 키(key)와 값(value) 쌍의 형태로 반환합니다. |
| 4 | HTTP_USER_AGENT User-Agent 요청 헤더 필드로, 요청을 보낸 사용자 에이전트(웹 브라우저)에 대한 정보를 포함합니다. |
| 5 | PATH_INFO CGI 스크립트의 경로 정보입니다. |
| 6 | QUERY_STRING GET 방식 요청과 함께 전송되는 URL 인코딩된 정보입니다. |
| 7 | REMOTE_ADDR 요청을 보낸 원격 호스트의 IP 주소입니다. 로깅이나 사용자 인증에 유용하게 활용됩니다. |
| 8 | REMOTE_HOST 요청을 보낸 호스트의 완전한 도메인 이름(FQDN)입니다. 이 정보를 사용할 수 없는 경우 REMOTE_ADDR로 IP 주소를 확인할 수 있습니다. |
| 9 | REQUEST_METHOD 요청에 사용된 메서드입니다. 가장 일반적인 메서드는 GET과 POST입니다. |
| 10 | SCRIPT_FILENAME CGI 스크립트의 전체 경로입니다. |
| 11 | SCRIPT_NAME CGI 스크립트의 이름입니다. |
| 12 | SERVER_NAME 서버의 호스트명 또는 IP 주소입니다. |
| 13 | SERVER_SOFTWARE 서버에서 실행 중인 소프트웨어의 이름과 버전입니다. |
환경 변수 출력 예제 코드
다음은 Python으로 작성된 간단한 CGI 프로그램으로, 사용 가능한 모든 CGI 환경 변수를 화면에 나열해 줍니다.
#!/usr/bin/python
import os
print "Content-type: text/html\r\n\r\n";
print "<font size=+1>Environment</font><br>";
for param in os.environ.keys():
print "<b>%20s</b>: %s<br>" % (param, os.environ[param])
코드 설명
import os: 환경 변수에 접근하기 위해os모듈을 임포트합니다.os.environ.keys(): 사용 가능한 모든 환경 변수의 이름(키)을 가져옵니다.- 반복문을 통해 각 변수의 이름과 값을 HTML 형식으로 출력합니다.
이 스크립트를 웹 서버의 CGI 디렉터리에 배치하고 실행하면, 현재 서버 환경에서 접근 가능한 모든 CGI 환경 변수와 그 값들을 한눈에 확인할 수 있습니다. CGI 프로그래밍을 처음 시작할 때 디버깅 및 학습 목적으로 매우 유용한 예제입니다.