大学2年の時に自由課題で提出したhttpd「Mapache」と
研究室でのhttpdを作れという課題で提出予定の「Panda」のソースコードを公開します.
研究室の課題で提出したhttpd.同時に1クライアントとしか接続できません.
Mapacheより低機能ですが,若干ソースコードが読みやすいはずです.
セキュリティの問題等が存在すると思うので,外部に公開された環境で実行しないでください.
gcc panda.c -o
等でコンパイルできます.ソースコードは自由に使っていただいて構いません.
Windowsでは動きませんが,少しの変更で動くはずです.(WSAStartup,closesocket)等など)
panda.c
./pandaコマンドライン引数で待ち受けポートを指定する事ができます.
./panda 8000
マルチクライアントに対応したPandaです.
panda2.c
forkでPandaの子供を作る事で,マルチクライアントに対応させています.
コンパイル方法などはPandaと同じです.
二年生の時に作ったhttpd.HTTPの勉強ついでに書きました.
HTTP,Basic認証,Digest認証の実装が気になる方は読むと面白いかもしれませんが,
正直ソースコードはぐちゃぐちゃです.時間を見つけて書き直します.
セキュリティ周りが怪しいので間違っても常時稼動はやめた方が良いです.
Windows,FreeBSD,Linux(Debian),MacOSXでの動作を確認しました.
httpd.zip
ソースコードしか入っていません.実行するにはコンパイルする必要があります.
Makefileは入ってないので,readme.txt(S-JIS)を読んでください.