シングルスレッドサーバーを、 フルスクラッチ でRustで立ててみる
目的:Rustでのネットワーク処理の扱いを理解する。
バグ修正などの取り回しなどが容易になると思われる。
最後のプロジェクト: マルチスレッドのWebサーバを構築する, The Rust Programming Language 日本語版
accessed on 2024/03/05
AC.icon 2h 完了
-03/06 00:16 できるところまでとりあえず進めてみる。
0:27 (30min)
残り1h30min。
開いたわ
^$で先頭末尾にカーソル移動
dでワードとか丸ごと削除
この関数がbindと呼ばれている理由は、ネットワークにおいて、リッスンすべきポートに接続することは、 「ポートに束縛する」(binding to a port)こととして知られているからです。
接続(connection)は、 クライアントがサーバに接続し、サーバがレスポンスを生成し、サーバが接続を閉じるというリクエストとレスポンス全体の過程の名前です。
クライアントがサーバに接続する際にincomingメソッドからエラーを受け取る可能性がある理由は、 実際には接続を走査していないからです。代わりに接続の試行を走査しています。
ほう
AC.icon TCP接続をリッスンする
このコードを試しに実行してみましょう!端末でcargo runを呼び出し、それからWebブラウザで127.0.0.1:7878をロードしてください。
動作を確認
AC.icon リクエストを読み取る
AC.icon HTTPリクエストを詳しく見る
AC.icon レスポンスを記述する
手でHTTPリスポンス返すの面白いな
文字列を返せさえすればマジでちゃんと応答として受け取ってくれるんだ
AC.icon 本物のHTMLを返す
AC.icon リクエストを読み取る
AC.icon リクエストにバリデーションをかけ、選択的にレスポンスを返す
AC.icon リファクタリングの触り