web-dev-qa-db-ja.com

リクエストのペイロードとリクエストの本文

RESTについて学びながら、POST Callを実行しているときに、XMLまたはJSON形式のリクエストペイロードを送信します。知りたいのはリクエストペイロードとリクエストボディは同じ意味ですか?

15
Ankur Garg

定義:ペイロード:パケットまたはファイル内の「実際のデータ」から、転送用に添付されたすべてのヘッダーとすべての説明的なメタデータを差し引いたもの。ネットワークパケットでは、ヘッダーが転送用のペイロードに付加され、宛先で破棄されます。

編集:Httpプロトコルでは、httpパケットにはhttpヘッダーとhttpペイロードがあります。したがって、httpパケットのペイロードセクションには、リクエストのタイプに応じてボディがある場合とない場合があります(例POST vs GET) 。したがって、ペイロードと本文は同じものではありません。

11
Satyam

ペイロードは本体の「ラッパー」です

ペイロードは運ぶものです。ペーパーボーイのペイロードは新聞の山であり、HTTP POSTリクエストのペイロードは "body"に入ってくるものです。

6
Dejell

HTTPクライアント/サーバーメッセージング RFC 7230に記載:ハイパーテキスト転送プロトコル(HTTP/1.1):メッセージの構文とルーティングは、リソースメタデータと表現メタデータを定義します。 payload本文とmessage本文を区別します(メッセージ本文は、 Transfer-Encodingヘッダーフィールド):

ほとんどのHTTP通信は、URIで識別されるリソースの表現に対する取得要求(GET)で構成されています。最も単純なケースでは、これはユーザーエージェント(UA)とオリジンサーバー(O)間の単一の双方向接続(===)を介して行われる可能性があります。

     request   >
UA ======================================= O
                            <   response

クライアントは、メソッド、URI、およびプロトコルバージョン(セクション3.1.1)を含むrequest-lineで始まり、要求修飾子を含むヘッダーフィールド、クライアント情報が続く、要求メッセージの形式でHTTP要求をサーバーに送信します。 、および表現メタデータ(セクション3.2)、ヘッダーセクションの終わりを示す空の行、最後にペイロード本文を含むメッセージ本文(存在する場合は、セクション3.3)。

サーバーは、1つ以上のHTTP応答メッセージを送信することによってクライアントの要求に応答します。各メッセージは、プロトコルバージョン、成功またはエラーコード、およびテキストの理由句(セクション3.1.2)を含むステータス行で始まり、ヘッダーフィールドが続く場合があります。サーバー情報、リソースメタデータ、表現メタデータ(セクション3.2)、ヘッダーセクションの終わりを示す空の行、最後にペイロード本文を含むメッセージ本文(存在する場合、セクション3.3)。

そのRFCの後半で、 HTTPメッセージ形式 (要求メッセージと応答メッセージの両方)が合計されます。

Start line<CR><LF>
Header fields<CR><LF>
<CR><LF>
Message body (optional)

ここで、<CR>はキャリッジリターン文字、<LF>はラインフィード文字です。

RFC 7231の abstractHypertext Transfer Protocol(HTTP/1.1):Semantics and Contentは、ペイロードの定義を示します。

ハイパーテキスト転送プロトコル(HTTP)は、分散型の協調的ハイパーテキスト情報システム用のステートレスアプリケーションレベルプロトコルです。このドキュメントは、リクエストメソッド、リクエストヘッダーフィールド、レスポンスステータスコード、およびレスポンスヘッダーフィールドによって表されるHTTP/1.1メッセージのセマンティクスを、メッセージのペイロード(メタデータおよび本文コンテンツ)とともに定義します。 )およびコンテンツネゴシエーションのメカニズム。

したがって、HTTPpayloadは次のもので構成されていると結論付けることができます。

  • metadataheader-fieldsに含まれる;
  • dataメッセージ本文に含まれています(転送エンコードされる前)。
1
Maggyero