ポートとは
Coddyの「ターミナルで学ぶネットワーク」コースのレッスン 10/47。
アドレスは、リクエストを正しいマシンに届けます。しかし、1台のマシンでウェブサイト、データベース、メールサーバーが同時に動作していることがあります。リクエストがそのうちのどれに向けられたものなのかを示す何かが必要です。
それがポートです。1から65535までの数値で、プログラムを選びます。アドレスが建物なら、ポートはドアです。
URLでは、ポートはコロンの後に続きます。
curl -s http://127.0.0.1:9104/hello.txt
# ^^^^ ポートアドレスとポートを組み合わせると、通信の一方の端を識別でき、その組み合わせはソケットと呼ばれます。サーバーが「9104でソケットを開いた」と聞いたら、まさにこの組み合わせを意味します。
1台のマシン上の2つのプログラムが同じポートで同時に待ち受けることはできません。これが、すべての開発者がいずれ遭遇するエラー、つまりアドレスはすでに使用されていますの原因です。
チャレンジ
難しいポートがプログラムを選択することを、1台のマシン上で2つのサーバーを実行して証明します。
- 2つのフォルダー、
aとbを作成します - それぞれにファイル
i.txtを配置します:aにはAAA、bにはBBB aをポート9104で、bをポート9105で提供します- 各ポートから
i.txtを取得します。9104を先にします
同じアドレス、同じファイル名、異なるドア:
AAA
BBB
(cd a && python3 -m http.server 9104 &)は、現在いるフォルダーを変更せずに、1つのフォルダー用のサーバーを起動します。
自分で試してみよう
このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
ターミナルで学ぶネットワークのすべてのレッスン
自分で練習してみよう: Terminalプレイグラウンド