Python CGIプログラミングで利用できる主な環境変数の一覧と使い方
CGI環境変数とは
すべてのCGIプログラムは、Webサーバーから渡される以下の環境変数にアクセスできます。これらの変数には、クライアントからのリクエスト情報やサーバー自身の情報が格納されており、CGIプログラムを作成するうえで非常に重要な役割を果たします。
主なCGI環境変数一覧
| No. | 変数名 | 説明 |
| 1 | CONTENT_TYPE | コンテンツのデータ型。クライアントがファイルアップロードなどの添付コンテンツをサーバーへ送信する際に使用されます。 |
| 2 | CONTENT_LENGTH | 問い合わせ情報(リクエストボディ)の長さ。POSTリクエストの場合のみ利用可能です。 |
| 3 | HTTP_COOKIE | 設定されているCookieをキーと値のペア形式で返します。 |
| 4 | HTTP_USER_AGENT | リクエストを発行したユーザーエージェントに関する情報を含むリクエストヘッダーフィールドです。一般的にはWebブラウザの種類・バージョンを示します。 |
| 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で環境変数を取得する方法
Pythonでは、標準ライブラリのosモジュールを使って、これらのCGI環境変数を簡単に参照できます。os.environ.get()を使用すると、変数が存在しない場合でもエラーにならずデフォルト値を返せるため安全です。
import os
# リクエストメソッドを取得
method = os.environ.get('REQUEST_METHOD', '')
# クエリ文字列を取得
query_string = os.environ.get('QUERY_STRING', '')
# クライアントのIPアドレスを取得
remote_addr = os.environ.get('REMOTE_ADDR', '')
# ブラウザ情報を取得
user_agent = os.environ.get('HTTP_USER_AGENT', '')
print(f"Method: {method}")
print(f"Query: {query_string}")
print(f"Client IP: {remote_addr}")
print(f"User Agent: {user_agent}")まとめ
CGI環境変数は、リクエストの内容やクライアントの情報、サーバーの状態を把握するために不可欠な仕組みです。特にREQUEST_METHOD、QUERY_STRING、REMOTE_ADDRなどは実務でも頻繁に使われるため、それぞれの意味と用途をしっかり理解しておきましょう。
-
PythonのCGI環境変数とは?主要な変数一覧とサンプルコードをわかりやすく解説
CGIプログラムは、実行時にWebサーバーからさまざまな環境変数を受け取ります。これらの環境変数には、クライアントのIPアドレスやブラウザの種類、送信されたデータの形式など、リクエストに関する重要な情報が格納されています。CGIプログラムを開発する際には、これらの変数を適切に活用することが不可欠です。 主なCGI環境変数の一覧 以下に、CGIプログラムからアクセスできる代表的な環境変数とその説明をまとめました。 番号変数名と説明 1CONTENT_TYPEコンテンツのデータ型(MIMEタイプ)。クライアントがファイルアップロードなど、添付コンテンツをサーバーへ送信する際に使用され
-
PythonのCGIとは?仕組みとサーバー設定方法をわかりやすく解説
CGI(Common Gateway Interface:共通ゲートウェイインターフェース)は、HTTPサーバーなどの情報サーバーと外部のゲートウェイプログラムがやり取りするための標準規格です。現在のバージョンはCGI/1.1であり、CGI/1.2が策定中です。Webブラウジングの流れCGIの概念を理解するために、ハイパーリンクをクリックして特定のWebページやURLを閲覧するときに何が起こるのかを見てみましょう。ブラウザがHTTP Webサーバーに接続し、URL(つまりファイル名)を要求します。WebサーバーはURLを解析してファイル名を探します。該当するファイルが見つかればそれをブラウザへ