CGI
Common Gateway Interface.
大昔からある、Webアプリケーションのための共通インターフェース
CGIを動作させる条件
CGI対応しているWebサーバー
標準入出力に対応しているプログラム(.shスクリプトでもOK)
CGIインターフェース仕様(プログラム側)
HTTPリクエストの受取り
HTTPリクエストヘッダーは環境変数にセットされる
HTTPリクエストボディは標準入力で受け取る
HTTPレスポンスの送信
ヘッダーとボディを標準出力にプリントする
PythonでCGIサーバー
code:bash
$ mkdir cgi-bin
$ vi cgi-bin/hello.py
`
#!/usr/bin/env python
import datetime
print("HTTP/1.0 200 OK")
print("Content-Type: text/plain")
print()
print("Hello", datetime.datetime.now())
`
$ chmod +x cgi-bin/hello.py
$ python3 -m http.server --cgi
ブラウザで http://localhost:8000/cgi-bin/hello.py にアクセス
hello.py の代わりに hello.sh でも動作する(はず)