POSTメソッド

読み:ぽすとめそっど / 英語表記:POST method

HTTPで、サーバにデータを送って処理させるときに使うメソッド。送るデータは、リクエストのメッセージボディに入れる。

イマシルちゃんの解説

ログイン画面でIDとパスワードを入れて送信したり、掲示板に書き込んだりするときに使うのがPOSTなんだ。

GETと違って、データはURLじゃなくて「手紙の中身」の部分にしまって送るよ。
だからURLにパスワードが丸見えになったりしないんだ!

より深い解説

定義

POSTは、HTTPのリクエストで、送ったデータをサーバに処理させるメソッドである。データは、ヘッダーの後の空行に続くメッセージボディに入れる。

POST /login HTTP/1.1
Host: example.com
Content-Type: application/x-www-form-urlencoded
Content-Length: 27

user=glatch&password=secret

データの形式(Content-Type)

Content-Type使われる場面
application/x-www-form-urlencoded普通のHTMLフォーム。キー=値 を「&」でつなぐ
multipart/form-dataファイルのアップロードを含むフォーム
application/jsonWeb APIでJSONを送るとき

POSTの性質

二重送信の防止

POSTの後にブラウザで再読み込みをすると、同じデータがもう一度送られる。これを防ぐ定番の方法がPRG(Post/Redirect/Get)パターンである。POSTを受けたサーバが処理の後で別のURLへのリダイレクト(303 See Other など)を返し、ブラウザはそのURLをGETで取り直す。こうすると、再読み込みしてもGETが繰り返されるだけになる。

注意点

POSTでもHTTPのままでは通信路上で中身を見られるため、パスワードなどを送るときは必ずHTTPSを使う。POSTは「暗号化」ではなく、「データをURLに載せない」だけである。

実際の試験ではここに出る!

この用語が出てくる記事

↑