Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Python CGI 프로그래밍에서 활용할 수 있는 환경 변수 총정리

CGI 환경 변수란?

CGI(Common Gateway Interface) 프로그램은 실행될 때 웹 서버로부터 다양한 환경 변수(Environment Variables)를 전달받습니다. 이 변수들은 클라이언트의 요청 정보, 서버 정보, 전송된 데이터의 형식 등을 담고 있어, CGI 프로그램을 작성할 때 매우 중요한 역할을 합니다.

아래 표는 모든 CGI 프로그램에서 접근할 수 있는 대표적인 환경 변수들을 정리한 것입니다.

주요 CGI 환경 변수 목록

번호변수 이름설명
1CONTENT_TYPE콘텐츠의 데이터 유형입니다. 클라이언트가 서버에 첨부 데이터를 전송할 때 사용됩니다. 예를 들어 파일 업로드 시 활용됩니다.
2CONTENT_LENGTH쿼리 정보의 길이입니다. POST 방식 요청에서만 사용할 수 있습니다.
3HTTP_COOKIE설정된 쿠키를 키(key)와 값(value) 쌍의 형태로 반환합니다.
4HTTP_USER_AGENTUser-Agent 요청 헤더 필드로, 요청을 보낸 사용자 에이전트에 대한 정보를 담고 있습니다. 즉, 사용 중인 웹 브라우저의 이름입니다.
5PATH_INFOCGI 스크립트의 경로 정보입니다.
6QUERY_STRINGGET 방식 요청과 함께 전송되는 URL 인코딩된 정보입니다.
7REMOTE_ADDR요청을 보낸 원격 호스트(클라이언트)의 IP 주소입니다. 로깅(logging)이나 사용자 인증에 유용하게 활용됩니다.
8REMOTE_HOST요청을 보낸 호스트의 완전한 도메인 이름(FQDN)입니다. 이 정보를 사용할 수 없는 경우에는 REMOTE_ADDR 변수를 통해 IP 주소를 확인할 수 있습니다.
9REQUEST_METHOD요청에 사용된 메서드입니다. 가장 널리 쓰이는 메서드는 GET과 POST입니다.
10SCRIPT_FILENAMECGI 스크립트의 전체 경로입니다.
11SCRIPT_NAMECGI 스크립트의 이름입니다.
12SERVER_NAME서버의 호스트명(hostname) 또는 IP 주소입니다.
13SERVER_SOFTWARE서버에서 실행 중인 소프트웨어의 이름과 버전 정보입니다.

Python에서 환경 변수 접근하기

Python CGI 프로그램에서는 표준 라이브러리의 os 모듈을 사용해 위 환경 변수들에 손쉽게 접근할 수 있습니다. 다음은 자주 사용되는 환경 변수를 읽어오는 간단한 예제입니다.

import os

print("Content-Type: text/html\n")
print("<html><body>")
print("요청 방식:", os.environ.get('REQUEST_METHOD'))
print("클라이언트 IP:", os.environ.get('REMOTE_ADDR'))
print("브라우저 정보:", os.environ.get('HTTP_USER_AGENT'))
print("</body></html>")

os.environ.get() 함수를 사용하면 해당 환경 변수가 존재하지 않을 때 오류 없이 기본값(None)을 반환받을 수 있어 안전하게 코드를 작성할 수 있습니다.

정리

CGI 환경 변수는 클라이언트 요청과 서버 상태에 대한 핵심 정보를 제공합니다. 특히 REQUEST_METHOD, QUERY_STRING, REMOTE_ADDR 같은 변수는 폼 데이터 처리, 접속자 추적, 조건 분기 로직 작성에 필수적이므로 각 변수의 의미와 용도를 잘 이해해 두는 것이 좋습니다.