2012-03-18 11 views
1

私は、自分のindex.htmlページのフォームで与えられた入力を処理するはずのhttpサーバーを作成するはずの宿題を割り当てています。これを行うには、POSTアクションとcgiファイルへのリンクを使用するフォームがあります。私が抱えている問題は、私のcgiファイルへのリンクです。HTTPサーバーとCGI処理

<form action="test.cgi" method="POST"> 
    Username: <input type="text" name="user" /> 
    <input type="submit" value="Submit" /> 
    </form> 

私は自分のサーバーに接続すると、私はに接続します:localhostを:私のインデックスファイルとするとき、私はヒットを与えるPORT私のフォームは次のようになりますので、私のインデックスファイルとCGIファイルが同じフォルダ内にあります送信ボタンはlocalhost:PORT/test.cgiにリンクします。

私の考えでは、これは私のcgiファイルに直接リンクされ、すべてがうまくいくはずです。私は、サーバがコンピュータ上のファイルをどのように整理するのか分からないので、これが必要であることを知っています。誰かが私にこの仕組みを説明することができますか?

重要な情報を投稿していない場合は、私に知らせてください。できるだけ早く投稿を編集します。

+0

Iではないことに注意してくださいあなたは "httpサーバー"を作成するのではなく、ちょうどCGIスクリプトを作成していると思われますか? –

+1

あなたがサーバーを書いたのであれば、可能な限りデバッグして、どのコードが期待どおりに動作していないかを教えてください。あなたがそれを書いていないなら、あなたはあなたの投稿の重要な情報をたくさん残しました。 –

+0

@BrianRoach私は実際にhttpサーバとcgiスクリプトを作成しています。 –

答えて

1

あなたはHTTPサーバを書いているので、あなたが

Apacheの:-) CGI処理の「ルール」を定義することができ、例えば、デフォルトで自分のを可能にするためのcgi-binディレクトリにCGIスクリプトを配置する1が必要です実行。これはすべてhttpd.confで設定できます。ユーザーはCGIを無効にしたり、CGIスクリプト用の別のディレクトリを設定ファイルで指定することができます。同様のことをすることもできます。

はまた、CGIファイルのファイル拡張子は(Perlスクリプトのために)通常test.plであり、サーバは通常、指定されたスクリプトファイル

http://httpd.apache.org/docs/2.0/howto/cgi.htmlのフォーク/ execのは良い参考

+0

申し訳ありませんが、私のサーバー上でCGI処理のためのすべての 'ルール'を定義する必要があるようです。また、perlやpythonのスクリプトはCGIファイルの方が簡単だと理解していますが、割り当ては具体的にはすべてをcで行う必要があるため、すべてが少し複雑になります。 –

+0

あなたのWebサーバーはCになりますが、あなたのサーバがユーザにCGIスクリプトを書くことを期待しているスクリプト言語を理解できるスクリプト言語を理解することができます - Webサーバとして、CコードはCGIスクリプトを実行し、その出力、ライフサイクルを管理する責任を負います - スクリプトそれ自体はWebサーバーのブラックボックスです –

関連する問題