課題3:HTTPサーバの作成

サンプルのサーバプログラムを参考にして,次の仕様を満たすサーバを作成せよ. 課題2で作成したクライアントから,本課題のサーバに接続し,テキストの送受信 ができていることを確認せよ.さらに,他の人が作成した他ホスト上のクライア ントとの間での通信ができることを確認せよ.

サーバの動作
  1. 引数としてポート番号を受け取って起動する.
  2. クライアントからの接続を待つ.
  3. 接続確立後,クライアントからのコンテンツ転送要求に応じて Status-Lineentity-headerとともに,コンテンツを送信する (パスによって指定されたファイルの内容をそのまま送信すればよい).
  4. 2.に戻る.

実行例
クライアントからのリクエスト(表示しない):
   GET /index.html HTTP/1.1 (CRLF)
   Host: www.kuis.kyoto-u.ac.jp (CRLF)
   (CRLF)

サーバの応答・成功の場合(クライアントへ送信):
   HTTP/1.1 200 OK
   Content-Type: text/html; charset=us-ascii
   ...以下コンテンツが続く...

サーバの応答・失敗の場合(クライアントへ送信):
   HTTP/1.1 404 Not Fonund
   Content-Type: text/html; charset=us-ascii

   <HTML><HEAD>Not Found</HEAD>
   <BODY>
   The requested URL /index.html was not found on this server.
   </BODY></HTML>

補足

NAKAZAWA Koji
2014-09-30