POST

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.

HTTP の POST メソッドは、サーバーにデータを送信します。リクエストの本文の型は Content-Type ヘッダーで示されます。

PUTPOST との違いは、 PUT がべき等であることです。一度呼び出しても複数回呼び出しても成功すれば同じ効果になる(作用がない)のに対して、同じ POST に成功すると、複数回の注文を行うような、追加の効果が出ます。

POST リクエストは、ふつう HTML フォームを介して送信され、サーバーに変化をもたらします。この場合、<form> 要素の enctype 属性や<input> または <button> 要素の formenctype 属性に適切な文字列が指定することで、コンテンツタイプを選択することができます。

  • application/x-www-form-urlencoded: キーと値は、 '&' で区切られ、キーと値の組が '=' で結ばれた形でエンコードされます。キーや値が英数字以外の文字であった場合は、パーセントエンコーディングされます。このため、このタイプはバイナリデータを扱うのには向きません(代わりに multipart/form-data を使用してください)
  • multipart/form-data: それぞれの値はデータのブロック ("body part") として送信され、ユーザーエージェントが定義するデリミター ("boundary") がそれぞれの部分を区切ります。キーはそれぞれの部分の Content-Disposition ヘッダーの中で与えられます。
  • text/plain

POST リクエストが HTML フォーム以外の方法 — XMLHttpRequest など — で送信された場合は、本文はあらゆるタイプを取ることができます。 HTTP 1.1 仕様書で記述されている通り、 POST は以下のような機能をカバーする統一的なメソッドになるよう設計されています。

  • 既存のリソースの注釈
  • 掲示板、ニュースグループ、メーリングリスト、又は同様の記事グループへの投稿
  • サインアップモーダルからの新規ユーザーの追加
  • フォームの送信結果などにおける、データを扱うプロセスへのデータブロックの受け渡し
  • 追加操作によるデータベースの拡張
リクエストの本文 あり
成功時のレスポンスの本文 あり
安全性 なし
べき等性 なし
キャッシュ 鮮度を表す情報が含まれている場合のみ可能
HTML フォームでの利用

構文

POST /test

既定の application/x-www-form-urlencoded コンテンツタイプを使用した単純なフォームです。

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

field1=value1&field2=value2

multipart/form-data コンテンツタイプを使用したフォームです。

POST /test HTTP/1.1
Host: foo.example
Content-Type: multipart/form-data;boundary="boundary"

--boundary
Content-Disposition: form-data; name="field1"

value1
--boundary
Content-Disposition: form-data; name="field2"; filename="example.txt"

value2
--boundary--

仕様書

Specification
HTTP Semantics
# POST

ブラウザーの互換性

Report problems with this compatibility data on GitHub
desktopmobile
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
POST

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support

関連情報