Menu
Coddy logo textTech

-dを使ったPOST

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

これまでのすべてのリクエストは、何かを要求していました。-d は代わりに何かを送信します:

curl -s -d 'name=ada' http://127.0.0.1:9122/signup

これを追加した瞬間に、2つのことが起こります。curl は指示されなくてもメソッドを GET から POST に切り替え、指定した内容をリクエストのボディとして添付します。

つまり、-d は単に「データを追加する」だけではなく、リクエストの種類を変更します。ボディのない POST が必要な場合は、自分で -X POST と指定しなければなりません。

GET ではパラメーターを誰でも見たり記録したりできる URL に置きますが、POST ではボディに置きます。パスワードを含むフォームで POST を使うのはそのためです。ボディが暗号化されるからではありません。実際には暗号化されません。URL はブラウザーの履歴、サーバーログ、リファラーヘッダーに残ってしまうからです。

challenge icon

チャレンジ

上級者

最初の POST を送信し、サーバーが受信した内容を読み返します。

  1. ポート 9122 でキャプチャリスナーを起動します(200 を返し、リクエストを req.txt に書き込みます)
  2. name=adahttp://127.0.0.1:9122/signup に POST します
  3. req.txt最初の行を表示します

期待される出力:

POST /signup HTTP/1.1

--max-time 3 を curl に指定して無限に待機しないようにし、出力を破棄します。

自分で試してみよう

ターミナル
quiz icon腕試し

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

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

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