これは、HTTP 1.0仕様のサブセットをサポートするCで書かれた小さなWebサーバーです。サーバー;
•同時リクエストを処理できる必要があります
•HTTPメソッドを実装してヘッドを実装します
•無効な要求を処理して応答します。
WebサーバーがホームページをWebブラウザーに配信できることを実証できるはずです。 RFC 1945で定義されているように、HTTPのバージョン1.0を実装する必要があります。ここでは、Webページの各コンポーネントに対して個別のHTTP要求が送信されます。サーバーは、複数の同時サービス要求を並行して処理できます。これは、Webサーバーがマルチスレッドされていることを意味します。メインスレッドでは、サーバーは固定ポートに耳を傾けます。 TCP接続要求を受信すると、別のポートを介してTCP接続をセットアップし、リクエストを別のスレッドでサービスします。
このプログラミングタスクを簡素化するために、2つの段階でコードを開発します。最初の段階では、受信するHTTP要求メッセージのコンテンツを単純に表示するマルチスレッドサーバーを作成できます。このプログラムが適切に実行された後、適切な応答を生成するために必要なコードを追加できます。
コードを開発しているときに、HTTPクライアントアプリケーションとしてChrome、Safari、Firefox Webブラウザーなど、Webブラウザーからサーバーをテストできます。ただし、標準のポート80を介して提供していないため、ブラウザに提供するURL内のポート番号を指定する必要があることを忘れないでください。たとえば、マシンの名前がtesthost.mydomain.comである場合、サーバーがポート6789を聴いていて、ファイルindex.htmlを取得する場合は、ブラウザ内で次のURLを指定します。http:// testhost.mydomain.com:6789/index.html
「:6789」を省略すると、ブラウザはポート80を想定します。
サーバーがエラーに遭遇すると、適切なHTMLソースで応答メッセージが送信され、エラー情報がブラウザウィンドウに表示されます。
一般的な要件:
•POSIXライブラリ(PTHREAD)が使用されます。
•サーバーはあまりにも多くのリクエストを取りますが、応答は10個のリクエストのみを返すことができます。 10を超えるリクエストが拒否されます。この状態では、サーバーは「サーバーはビジー」メッセージを返します
•サーバーは、HTMLおよびJPEGファイルになるリクエストを受け入れます。他のタイプは受け入れられません