最後のプロジェクト: マルチスレッドのWebサーバを構築する

長い旅でしたが、本の末端に到達しました。この章では、共にもう一つプロジェクトを構築して最後の方の章で講義した概念の一部をデモしつつ、 前のレッスンを思い出してもらいます。

最後のプロジェクトでは、helloと言うのWebサーバを作り、Webブラウザで図20-1のような見た目になります。

hello from rust

図20-1: 最後の共有されたプロジェクト

こちらがWebサーバを構築するプランです:

  1. TCPとHTTPについて少し学ぶ。
  2. ソケットでTCP接続をリッスンする。
  3. 少量のHTTPリクエストを構文解析する。
  4. 適切なHTTPレスポンスを生成する。
  5. スレッドプールでサーバのスループットを強化する。

ですが、取り掛かる前に、ある詳細に触れるべきです: 使用する方法は、RustでWebサーバを構築する最善の方法ではないのです。 これから構築するよりもより完全なWebサーバとスレッドプールの実装を提供する製品利用可能な多くのクレートが、 https://crates.io/ で利用可能なのです。

しかしながら、この章での意図は、学習の手助けであり、簡単なルートを選ぶことではありません。 Rustはシステムプログラミング言語なので、取りかかる抽象度を選ぶことができ、 他の言語で可能だったり実践的なほどよりも低レベルまで行くことができます。一般的な考えと将来使う可能性のあるクレートの背後にある技術を学べるように、 手動で基本的なHTTPサーバとスレッドプールを書きます。