このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docsコミュニティーについてもっと知り、仲間になるにはこちらから。
POST
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since 2015年7月.
HTTP のPOST メソッドは、サーバーにデータを送信します。リクエストの本文の型はContent-Type ヘッダーで示されます。
PUT とPOST との違いは、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 は以下のような機能をカバーする統一的なメソッドになるよう設計されています。
- 既存のリソースの注釈
- 掲示板、ニュースグループ、メーリングリスト、又は同様の記事グループへの投稿
- サインアップモーダルからの新規ユーザーの追加
- フォームの送信結果などにおける、データを扱うプロセスへのデータブロックの受け渡し
- 追加操作によるデータベースの拡張
In this article
構文
POST /test
例
既定のapplication/x-www-form-urlencoded コンテンツタイプを使用した単純なフォームです。
POST /test HTTP/1.1Host: foo.exampleContent-Type: application/x-www-form-urlencodedContent-Length: 27field1=value1&field2=value2
multipart/form-data コンテンツタイプを使用したフォームです。
POST /test HTTP/1.1Host: foo.exampleContent-Type: multipart/form-data;boundary="boundary"--boundaryContent-Disposition: form-data; name="field1"value1--boundaryContent-Disposition: form-data; name="field2"; filename="example.txt"value2--boundary--
仕様書
| Specification |
|---|
| HTTP Semantics> # POST> |