#pragma SET_HEADER

HTTP応答ヘッダキューに文字列を追加する

定義

書式#pragma SET_HEADER header_string
引数header_stringHTTP応答ヘッダの文字列

説明

HTTP応答ヘッダキューに文字列を追加します。HTTP応答ヘッダキューとはC++ for CGIが内部に持っている文字列配列です。キューに追加するだけで送信はしません。
HTTP応答ヘッダの書式に合致したものであれば、文字列はいくつでも追加できます。また、HTTP応答ヘッダキューに記憶した文字列の順番は C++ for CGIが適当に変えます。
HTTP応答ヘッダの代表的なものには次のようなものがあります。
ヘッダ説明
Content-Type:文書の内容Content-Type: text/html
Expires:文書の有効期限Expires: Sat, 31 Aug 2002 00:00:00 GMT
Last-Modified:最終更新日Last-Modified: Sat, 31 Aug 2002 00:00:00 GMT
Cache-Control:ブラウザのキャッシュ制御Cache-Control: no-cache, must-revalidate
Location:ブラウザを別のサイトに転送するLocation: http://www.yahoo.co.jp/
Set-Cookie: クッキーをブラウザに保存してもらうSet-Cookie: abc=aaxt
コンテントタイプを指定する場合は、Content-Type: と大文字・小文字をこのまま書いてください。

HTTP応答ヘッダキューの内容は、#pragma COUT_HEADER , #pragma COUT_HEAD , #pragma COUT_BODY , #pragma BEGIN_HTML を使用している場合、start関数の前に送信されます。また、cout_header関数 , cout_head関数 , cout_body関数 , begin_html関数のいずれかが実行されるときに送信されます。

HTTP応答ヘッダ、HTML文書ヘッダの出力はC++ for CGI に用意された手段を用いてください。printf , coutなどでそれらを出力すると不整合を生じることがあります。

同じように HTTP 応答ヘッダキューに文字列を追加する関数として、set_header(const char*) があります。

注意

  1. 普通使う必要はありません。
  2. HTTP応答ヘッダ、HTML文書のヘッダ部分はプリプロセス指令や cout_header関数を使用し、printf , cout で送信しないでください。
  3. HTTP応答ヘッダを記憶するだけで送信しません。
  4. 本プリプロセス指令において文字列は大文字・小文字区別してください。
  5. 文字列の中身の検査はしていません。