CGIとは -CGIが出力するヘッダー-
[INDEX] [BACK]CGIプログラムが出力するヘッダは3種類有り、この3種類のうちのどれかを必ず最初に出力しなければなりません。又、ヘッダーを出力した後は必ず空行を1行出力しなければなりません。これによりサーバーはヘッダーの終わりを認識します。空行が無いとサーバーエラーになります。以下ヘッダーについて簡単に説明します。
- Location
Locationヘッダは通常の出力を行う代わりに別のファイルへアクセスします。出力する文は
Location: /aaa/bbb/friend.htm
のようにします。これは例えばブラウザからの送信データによって条件分岐して、ある条件を満たしたときのみファイルにアクセスログを保存してから指定のURLにジャンプする処理を書く時などに使用されます。検索サイトなどでよく「リダイレクトされようとしています。」というメッセージが表示されますが、これは一旦CGIプログラムを呼び出して、このヘッダーを使って別のURLにジャンプする時に出るメッセージです。つまり検索サイトではおそらくヒットしたサイトへジャンプさせる前に回数等をロギングしているのでしょう。 - Status
Statusヘッダはサーバーの状態コードを指定して、ブラウザはその状態を判断して反応を変化させます。例として下のようにヘッダーを出力するとブラウザは画面の書き換えを行いません。CGIプログラムが意図的にブラウザの画面をそのままの状態にしておきたい時などに使用します。ユーザーフレンドリーな木目細かいプログラミングが出来るでしょう。出力文は
Status: 204 No response
状態コードは他にも有りますがここでは省略します。 - Content-type
Content-typeヘッダはCGIプログラムがサーバー経由でブラウザにデータを送る際、それがどのようなデータかをサーバーに教えるためのものです。出力データがhtml形式である場合は、
Content-type: text/html
以下によく使われるContent-typeの種類を挙げておきます。
内 容 content-type HTML text/html テキスト text/plain 画像(gif) image/gif 動画(mpeg) video/mpeg PostScript application/postscript -
image/gifは画像型のアクセスカウンタ用CGIプログラムでよく使われています。