リクエストメソッド
Coddyの「ターミナルで学ぶネットワーク」コースのレッスン 21/47。
メソッドは、どの種類の操作を行いたいかを示します。ほとんどすべてをカバーするのは次の4つです。
- GET:これをください。何も変更しません。
- POST:データを渡すので、それを使って何かをしてください。
- PUT:これを、この正確な場所に保存してください。
- DELETE:これを削除してください。
GETは安全です。サーバー上の何も変更してはいけないため、ブラウザーは許可を求めずにページを2回取得できます。また、何かを削除するリンクが設計上の誤りである理由もそこにあります。リンクをたどるものなら、何でもそのリンクを実行してしまう可能性があるからです。
サーバーは、実装していないメソッドを自由に拒否できます。そのことはエラーメッセージではなく、ステータスコードで示します。たとえば、PythonのシンプルなファイルサーバーはGETとHEADを理解し、それ以外は何も理解しません。
curlは、別途指定されない限りGETを送信します。-Xでメソッドを変更できます。
チャレンジ
中級サーバーに対応していないことを要求し、その応答を読み取ります。
Python のファイルサーバーは GET と HEAD のみを理解します。ポート 9111 でフォルダーを提供し、そこに POST を送信して、返された数値のステータスコードだけを出力します。
期待される出力:
501501 は「not implemented」を意味します。
-o /dev/nullは本文を破棄し、-w "%{http_code}"はコードを出力します。
自分で試してみよう
このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
ターミナルで学ぶネットワークのすべてのレッスン
自分で練習してみよう: Terminalプレイグラウンド