Haskellでネットワークプログラミングと,パーサを作る練習として~
 ウェブサーバを作ってみました.~
 [[C言語>プログラミング/C_C++/ウェブサーバ]]で書いた物と比べてみると面白いかもしれません.
 
 #contents
 
 *仕様 [#ede9ae25]
 -forkによるマルチクライアントへの対応.
 -命令はGETにのみ対応
 -Content-Typeは常にtext/htmlを返す
 -URIに「..」が含まれていたらエラーを返す((hoge..htmlとかも禁止^^;))
 
 適当ですね・・・.
 
 *ソースコード [#l5d28f5d]
 #ref(Main.hs);
 余裕で100行きってます.Cと違って,ただやりたい事の意味を並べていけばプログラムが動く^^~
 Haskell良いねぇ.~
 
 このhttpdではHTTPリクエストの解釈にParsecを使っています.~
 なかなか便利です.
 **実行 [#i3ed4d15]
  runghc Main.hs
 か
  ghc -package network Main.hs
  ./a.out   <== Windowsなら a.exe
 で動きます.引数で待ち受けるポートを指定する事も出来ます.~
 カレントディレクトリ/public_html/以下のファイルが公開されます.~
 セキュリティホールが有るかも知れないので,外部からアクセスできるような環境では実行しない方が良いです^^;
 
 *解説 [#tb207846]
 不明な点があれば,コメントか掲示板に書いてください.
 
 *参考 [#rf27bb14]
 -[[C/C++版httpd>プログラミング/C_C++/ウェブサーバ]]
 -Parsec
 --[[自分のページ>../Parsec]]
 --[[Parsec, 高速なコンビネータパーサ>http://www.lab2.kuis.kyoto-u.ac.jp/~hanatani/tmp/Parsec.html]]
 
 *コメント [#ode40d9c]
 #comment