クライアントとサーバー
Coddyの「ターミナルで学ぶネットワーク」コースのレッスン 2/47。
どのやり取りでも、一方が会話を始め、もう一方が待ちます。尋ねる側がクライアントです。待機して答える側がサーバーです。
これらは機械ではなく役割です。同じコンピューターが、Webリクエストに答えるときはサーバーになり、その数秒後にデータベースへ問い合わせるときはクライアントになります。あなたのノートパソコンは通常クライアントですが、ローカル開発サーバーを起動した瞬間、それはサーバーでもあります。
サーバーは、特定の、そして少し奇妙なことをします。起動した後、何週間も、ときには何もせずに待ち続けます。リッスンしているのです。ついにリクエストが届くと、応答して再び待機に戻ります。
クライアントはリクエストの送信先を知っている必要があり、サーバーはリクエストが届く正しい場所でリッスンしていなければなりません。これがハンドシェイクのすべてであり、何かが壊れているときは、ほとんどの場合、この2つのどちらか一方に問題があります。
チャレンジ
簡単サーバーをリッスン状態にしてから、本当に待機していることを確認します。
- ポート 9102 でサーバーをバックグラウンドで起動する
- 起動するまで1秒待つ
nc -zでポートに接続し、応答があればlisteningを、なければnothingを出力する
期待される出力:
listening
command && echo a || echo bは、コマンドが成功したときにaを、失敗したときにbを出力します。
自分で試してみよう
このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
ターミナルで学ぶネットワークのすべてのレッスン
自分で練習してみよう: Terminalプレイグラウンド