Menu
Coddy logo textTech

スキームがポートを決める

Coddyの「ターミナルで学ぶネットワーク」コースのレッスン 39/47。

http://https:// の違いは、文字が1つ違うだけではありません。スキームによって、使用するデフォルトポートが80か443か、そして何かを送信する前にTLSハンドシェイクを開始するかどうかという、2つの点が決まります。

そのハンドシェイクは、リクエスト行が書き込まれる前に行われる最初の処理です。双方が暗号化方式に合意し、サーバーが証明書を提示します。その後になって初めて、あなたが知っているHTTPが暗号化されたチャネル内で送信されます。

つまり、ポートはTLSを話すか、話さないかのどちらかです。通常のHTTPポートに対してhttps://で要求すると、丁寧なフォールバックはありません。ハンドシェイクは直ちに失敗し、curlはSSL接続エラーを示す終了コード35を報告します。

これは覚えておく価値があります。サーバーが停止しているように見えても、実際には1つ別のスキームで通常のHTTPを問題なく提供している可能性があるからです。

challenge icon

チャレンジ

難しい

プレーンな HTTP サーバーに TLS を要求し、拒否される様子を確認します。

  1. 通常の方法でポート 9129 でフォルダーを提供します。これはプレーンな HTTP です
  2. https://127.0.0.1:9129/ にリクエストを送り、curl の終了コードに続けて tls= を出力します

期待される出力:

tls=35

35 は SSL 接続エラーを示す curl のコードです。

自分で試してみよう

ターミナル
quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

ターミナルで学ぶネットワークのすべてのレッスン

自分で練習してみよう: Terminalプレイグラウンド