Menu
Coddy logo textTech

リクエストの構造

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

curl の下では、HTTP リクエストはソケット経由で送信されるプレーンテキストです。まず、何を要求しているかを示す1行から始まります。

GET /index.html HTTP/1.1

3つの部分があります。メソッド(どのような操作か)、パス(どの対象か)、そしてバージョンです。その後に、1行につき1つのヘッダーが続き、空行、それから任意のボディが続きます。

空行は飾りではありません。これによってサーバーはヘッダーが終わり、ボディがあればその開始位置が分かります。空行のないリクエストは、サーバーがまだ残りの内容を待ち続けるため、停止したようになります。

手動で1つ送信することもできます。nc は生の接続を開き、そこへ入力した内容をそのまま回線に送ります。

printf 'GET / HTTP/1.0\r\n\r\n' | nc 127.0.0.1 9110

\r\n は HTTP が要求する行末で、2つ続いているものが空行です。

challenge icon

チャレンジ

難しい

curlは完全に使わず、自分でHTTPをやり取りします。

  1. rawを含むindex.htmlを作成します
  2. フォルダーをポート9110で配信します
  3. ncを通じて生のGET /index.html HTTP/1.0リクエストを送信し、返ってきた内容の最初の行だけを出力します

その最初の行が、サーバーのステータス行です。期待される出力:

HTTP/1.0 200 OK

空行を忘れないでください:printf 'GET /index.html HTTP/1.0\r\n\r\n'

自分で試してみよう

ターミナル
quiz icon腕試し

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

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

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