• ベストアンサー

Content-Typeの判別

今、CGIのプログラムを作成中なのですが、クライアントから送られてきたデータのContent-Typeを判別するには、どのようにすればよいのですか? if($ENV{'CONTENT_TYPE'} =~ s/^content-type:(\s)text/i){ #処理 } こんな感じですか?以上のようにやってみたのですが、うまく動きませんでした。

質問者が選んだベストアンサー

  • ベストアンサー
  • php504
  • ベストアンサー率42% (926/2160)
回答No.2

POST メソッドでリクエストの場合はクライアントからもContent-typeが送られます。 普通のPOSTは Content-Type=application/x-www-form-urlencoded ファイルアップロードでenctype="multipart/form-data"が指定されている場合は Content-Type=multipart/form-data が送られます。 実際の処理はライブラリ(cgi-lib.pl)やモジュール(CGI.pm)使ったほうが便利ですね

すると、全ての回答が全文表示されます。

その他の回答 (1)

noname#25358
noname#25358
回答No.1

 通常のCGIの場合、クライアントは Content-type ヘッダを渡してきません。  それは、あなた(サーバー)がクライアントに返すべきヘッダの1つです。  具体的に何がしたいのか、もうちょっと詳しく補足してみてください。

pakoten
質問者

お礼

素早い回答ありがとうございました。

pakoten
質問者

補足

本来は、変換プログラム(CGI)にWWWコンテンツを渡し、その変換結果を受け取るというperlプログラムを作るのが目的です。 ですが、最初なので、まずCGIの仕組みから勉強しました。例えば、CGIはMETHODがPOSTかGETを判断ため、どういった処理が行われているのか、また、文字コードやヘッダをどう解釈しているか理解しました。 こうすることにより、どのようにしてCGIにヘッダやら文字コード情報を送ればよいのか分かると思ったからです。 環境変数により、解釈しているのは大体分かったのですが、文字コード変換とContent-Typeについては未だよくわかりません。 そこで、こちらでお聞きしたわけです。

すると、全ての回答が全文表示されます。

関連するQ&A