-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 はブラウザーの履歴、サーバーログ、リファラーヘッダーに残ってしまうからです。
チャレンジ
上級者最初の POST を送信し、サーバーが受信した内容を読み返します。
- ポート 9122 でキャプチャリスナーを起動します(200 を返し、リクエストを
req.txtに書き込みます) name=adaをhttp://127.0.0.1:9122/signupに POST しますreq.txtの最初の行を表示します
期待される出力:
POST /signup HTTP/1.1
--max-time 3を curl に指定して無限に待機しないようにし、出力を破棄します。
自分で試してみよう
このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
ターミナルで学ぶネットワークのすべてのレッスン
自分で練習してみよう: Terminalプレイグラウンド