Apidog

オールインワンのAPI開発プラットフォーム

API設計

API仕様書生成

API設計

API Mock

APIテスト自動化

無料登録
Home / 観点 / HTTPリクエストボディとは、その使い方の解説はこちら!

HTTPリクエストボディとは、その使い方の解説はこちら!

HTTPサーバーにデータを送信するときに、サーバーに保存や更新したいデータを送信するために、よくリクエストボディを使う必要があります。本文では、HTTPリクエストボディを詳しく解説した上、HTTPリクエストボディの使い方を皆さんに紹介します。

HTTPサーバーにデータを送信するときに、サーバーに保存や更新したいデータを送信するために、よくリクエストボディを使う必要があります。本文では、HTTPリクエストボディを詳しく解説した上、HTTPリクエストボディの使い方を皆さんに紹介します。

💡
リクエストボディは、POST、PUTなどのリクエストを送信するために必要なメカニズムです。Apidogを使用すると、どのようなHTTPメソッドを使ってリクエストを送信しようとしても、リクエストボディを利用することができます。Apidogを使用して、リクエストを送信する際、HTTPリクエストボディに何かのデータを追加することもできます。

また、Apidogは完全無料で利用できるAPI管理ツールとして、無料バージョンを使っても制限なく使い回すことができますので、下記のボタンから完全無料でこのツールを利用しましょう。
button

HTTPリクエストボディとは

HTTPリクエストボディとは、HTTPリクエストメッセージの本文の部分のことで、クライアントがサーバーに送信したいデータを含めることができます。HTTPリクエストボディは、よくPOSTやPUTなどのリクエストメソッドで使用されます。

HTTPリクエストボディとヘッダーとの違い

HTTPリクエストヘッダーとリクエストボディのは、HTTPリクエストメッセージの本文の違う部分になります。両者の間、主な違いは次のような点があります。

位置の違い

  • リクエストヘッダーはリクエストの先頭部分に配置される
  • リクエストボディはリクエストヘッダーの後に配置される

内容の違い

  • リクエストヘッダーはリクエストのメタデータを含む
  • 例: ホスト名、Acceptエンコーディング、Cookie等
  • リクエストボディはリクエストの本文データを含む
  • 例: POSTデータ、ファイルアップロードデータ等

形式の違い

  • リクエストヘッダーはキーと値の形式で記述される
  • リクエストボディは任意のデータ形式(JSON、XML、バイナリ等)が利用できる

サイズの違い

  • リクエストヘッダーは比較的小さいデータ
  • リクエストボディは任意のサイズのデータが可能

利用方法の違い

  • ほとんどのリクエストがリクエストヘッダーを利用する
  • リクエストボディは必要な場合にのみ利用する

HTTPリクエストボディの形式について

上記で紹介したように、HTTPリクエストヘッダーで利用されるキーと値のペア形式とは異なり、HTTPボディで利用可能な形式がたくさんあります。次は、HTTPクリエストボディで利用可能な形式を簡単に紹介します。

application/x-www-form-urlencoded

HTMLのフォームから送信される標準的なエンコーディング形式。キーと値のペアを&で繋げてエンコードします。サンプルは次のようになります:

name=John&age=20

application/json

JSON形式のデータ。JavaScriptでの処理が容易なため、Web APIではよく利用されます。サンプルは次:

{"name":"John", "age":20}

application/xml

XML形式のデータ。構造化データの表現に適している形式になります。サンプルは次:

<user>
  <name>John</name>
  <age>20</age>
</user>

multipart/form-data

ファイルアップロードなどで利用されるマルチパート形式。ファイルとフォームデータを混在させることができます。サンプルは次:

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

hello
--boundary
Content-Disposition: form-data; name="file"; filename="data.txt"  
Content-Type: text/plain

... file contents ...
--boundary--

application/octet-stream

application/octet-streamはバイナリデータをリクエストボディに設定する場合に使われるMIMEタイプです。

例えば、以下のように画像データをバイナリでエンコードし、リクエストボディに設定できます。

POST /upload HTTP/1.1
Host: example.com
Content-Type: application/octet-stream
Content-Length: 1226

FFD8FFE000104A46494600010101006000600000FFDB004300080606070605080707070909080A0C140D0C0B0B0C
1912130F141D1A1F1E1D1A1C1C20242E2720222C231C1C2837292C30313434341F27393D38323C2E333432FFDB00
43010909090C0B0C180D0D1832211C21323232323232323232323232323232323232323232323232323232323232
32323232323232323232323232323232323232FFC00011080080008003012200021101031101FFC4001F000001
0501010101010100000000000000000102030405060708090A0BFFC400B5100002010303020403050504040000
017D01020300041105122131410613516107227114328191A1082342B1C11552D1F02433627282090A1617183
... 以下略

このように実際のバイナリデータをリクエストボディにそのまま含めることができます。サーバー側ではContent-Typeヘッダーからapplication/octet-streamと判断し、リクエストボディをバイナリデータとして取り扱えば良いです。

text/plain

text/plain はリクエストボディにプレーンテキストのデータを設定する場合に利用する文字列で改行もサポートされます。

これはtext/plainのサンプルコメントです
改行も可能です

最近ではJSONやXMLの利用が多いですが、送信するデータの内容に合わせて適切な形式を選択する必要があります。

HTTPリクエストボディでデータを送信する方法

それでは、HTTPリクエストボディを使用して、データをサーバーに送信したい場合は、どうしたらいいですか?次は、一番使いやすいAPI管理ソフトを使って、HTTPリクエストボディにデータを入れて、サーバーに送信する方法を皆さんに紹介します。Apidogを使うと、直感的な操作によってノーコードでPOSTやPUTメソッドでリクエストボディのデータを送信できます。

button

ステップ⒈Apidogを開くと、APIのエンドポイントとHTTPメソッドなどの必要情報を記入して、「Body」タブに切り替えます。

ステップ⒉ここで、必要なデータ形式を選択して、適切なデータを記入します。

ステップ⒊送信」ボタンをクリックして、リクエストを送信できます。ここでBodyに追加したデータもサーバーに送信して、レスポンスを取得できます。

ApidogでリクエストBodyを送信
button

Apidogのニュースレターを購読する

今すぐ購読すると、いつでもApidogから更新情報と最新観点を手に入れることができます。