レビュー手順書 - katataku/webserv GitHub Wiki
前準備
siegeのインストール
brew install siege
- 後半の負荷テストに用いる。(今はインストールだけ)
- インストールに時間が掛かるのでインストールをしながら、別のターミナルで作業を継続する。
コンパイル
make
- もう一度
make
を実行して、relinkしないことを確認する。
サーバー起動
./webserv
- サーバは常駐プログラムなので、起動しっぱなしにしておく。以降の確認は別ターミナルで実施する。
- 第二引数でconfigファイルを指定できるが、今回は未指定でOK.(デフォルトのconfigファイルが利用される。)
Mandatory確認項目
webservとは別のターミナルで、リクエストを送り、確認作業を行う。
1つ目のポートに対して単純なGETが成功することの確認
curl -v localhost:8042/
- 200 OKが帰ってくることを確認する。
異なるポートに対しても単純なGETが成功することの確認
curl -v localhost:8043/
- 200 OKが帰ってくることを確認する。
1つ目のポートの別ホストに対してGETが成功することの確認
curl -v --resolve second:8042:127.0.0.1 http://second:8042/
- 200 OKが帰ってくることを確認する。
エラーページが表示できることの確認
curl -v localhost:8042/not_found
- 404 NotFoundが帰ってくることを確認する。
POSTメソッドの動作確認
curl -v localhost:8042/files/success -X POST --data "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
- 201 OKが帰ってくることを確認する。
Content-Length: 64
と表示されることを確認する。- 作成したファイルにアクセスできることを確認する。
curl -v localhost:8042/files/success
bodyの長さ制限の確認。
curl -v localhost:8042/files/success -X POST --data "baaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
- 413 Payload Too Largeが帰ってくることを確認する。
別のディレクトリへのアクセスができることの確認
curl -v localhost:8042/html2/
- 200 OKが帰ってくることを確認する。
- レスポンスされた内容は、html2となっていることを確認する。
許可されていないメソッドの仕様に関する確認。
curl -v localhost:8042/new -X POST
- 405 Method Not Allowedが帰ってくることを確認する。
DELETEメソッドの動作確認。
curl -v localhost:8042/files/success -X DELETE
- 200 OKが帰ってくることを確認する。
- ファイルが削除されていることを確認する。
ストレステスト
siege -b http://localhost:8042/
- 別のターミナルで、
top -b -d 1 |grep webserv
を実行して、メモリ使用量が「どんどん増えていない」ことを確認する。 lsof -Pni4 | grep webserv
watch -n 0.2 ls -l /proc/$(ps -a | grep webserv | awk '{ print $1 }')/fd
Bonus確認項目
コンパイル
make bonus
- もう一度
make bonus
を実行して、relinkしないことを確認する。 - ボーナス用の実行ファイルができていること。(同じソースコードで、別の実行ファイルを生成しているだけ。)
1種類目のCGI(python)が実行できることの確認
curl -v localhost:8042/cgi-bin/cgi-req-dumper.py
- 200 OKが帰ってくることを確認する。
2種類目のCGI(shell script)が実行できることの確認
curl -v localhost:8042/cgi-bin/cgi-req-dumper.sh
- 200 OKが帰ってくることを確認する。