Apidog

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

API設計

API仕様書生成

API設計

API Mock

APIテスト自動化

無料登録
Home / 操作ガイド / application/x-www-form-urlencodedとは?その使い方を解説

application/x-www-form-urlencodedとは?その使い方を解説

application/x-www-form-urlencodedはContent-typeの一種になり、時にはapplication/x-www-form-urlencodedに指定してデータを送信する必要があります。本文では、application/x-www-form-urlencodedの詳細情報を皆さんに紹介した上、application/x-www-form-urlencodedでデータを送信してAPIにアクセスする方法を一緒に解説していきたいと思います。

APIのリクエストを送信する時、Content-typeをappliation/jsonに指定することが多いのですが、時にはapplication/x-www-form-urlencodedに指定してデータを送信する必要があります。

application/x-www-form-urlencodedはContent-typeの一種だと分かっていますが、それはどのように動いでいるのかが分からないユーザーが多くいます。そこで、本文では、application/x-www-form-urlencodedの詳細情報を皆さんに紹介した上、application/x-www-form-urlencodedでデータを送信してAPIにアクセスする方法を一緒に解説していきたいと思います。

💡
APIの設計中に、APIリクエストのデータ受け渡しの仕組みをx-www-form-urlencoded形式に設定することも、APIのテスト中にボディでx-www-form-urlencoded形式でパラメータを記入してリクエストを送信することも、Apidogによって簡単に行われます。
Apidogは、APIの設計、テスト、仕様書生成及びモックサーバーなどにも対応可能なAPI管理ツールとして、非常に直感的なGUIでAPIに関わる作業を手軽にやり遂げます。個人向け完全無料ですが、誰でもApidogを制限なく利用することができます。無料で始めるには、下記のボタンから!👇👇👇
button

application/x-www-form-urlencodedとは

application/x-www-form-urlencodedは、HTMLフォームから送信されるデータをエンコードするためのContent-Typeの1つになります。Content-Typeとはヘッダーに入れるリクエスト本文の型を定義するためのものになります。

主な特徴は以下の通りです:

  • フォームデータをキーと値のペアで表現します。
  • キーと値は=記号で連結されます。
  • キーと値はURLエンコーディング(percent-encoding)されます。これにより、特殊文字や空白を安全にエンコードできます。
  • キーと値のペアは&記号で区切られます。
  • コンテンツタイプヘッダーはContent-Type: application/x-www-form-urlencodedとなります。

例えば、フォームにnameemailの入力欄があり、それぞれJohn Doejohn@example.comが入力された場合、以下のようにエンコードされます。

name=John%20Doe&email=john%40example.com

ブラウザはデフォルトでこのフォーマットを使用してフォームデータを送信します。サーバー側では、このデータを受信してデコードすることで、フォームの内容を読み取ることができます。

application/x-www-form-urlencodedの仕様

上記の説明から、大抵application/x-www-form-urlencodedの主な仕様が分かるようになるのでしょう。上記の情報を踏まえて、次は、application/x-www-form-urlencodedの詳細仕様を解説していきたいと思います。

文字エンコーディング

  • アルファベット、数字、ハイフン(-)、アンダースコア(_)、ピリオド(.)はエンコードしない
  • その他の文字はPercent Encodingでエンコードする。例:スペースは %20

キーと値のエンコーディング

  • キーと値は等号(=)で連結する
  • キーと値に使用できる文字はアルファベット、数字、ハイフン、アンダースコア、ピリオド
  • その他の文字はPercent Encodingでエンコードする

キーと値の区切り

  • アンパサンド(&)でキーと値を区切る
  • &自体は%26とエンコードする

キーの並び順

  • キーの並び順は指定されていない

長さの制限

  • ブラウザやサーバーによって異なるが、通常2048字程度

Content-type

  • Content-typeはapplication/x-www-form-urlencoded

文字エンコーディング

  • デフォルトはUTF-8

この仕様に従うことで、フォームデータを安定した形式で送受信できます。サーバー側でもこの仕様に対応することが重要です。

application/x-www-form-urlencodedとURLパラメータ

多くのユーザーは、application/x-www-form-urlencodedのフォーマットは、URLパラメータに似ているのではないかという疑問を抱いているかもしれません。確かに両者のフォーマットは非常に似ています。

例えば、共通の特徴は以下のような点です:

  • キーと値のペアでデータを表現する
  • キーと値は等号(=)で連結する
  • アンパサンド(&)でペアを区切る
  • 値はURLエンコードされる
  • キーの並び順は任意

例えば、以下はapplication/x-www-form-urlencodedの例です:

key1=value1&key2=value2

以下は対応するURLパラメータの例です:

?key1=value1&key2=value2

非常に似たフォーマットになっています。ただし、細かな違いはあります。

  • URLパラメータは必ず「?」から始まる
  • URLパラメータの方が文字数制限がある

などの点で若干異なります。

しかし、基本的な構造とエンコーディングの仕組みはほぼ同じです。このため、データの表現方法としては非常に似通ったフォーマットだと言えます。

application/x-www-form-urlencodedとJSONの違い

通常、APIにアクセスしようと思っている場合、APIサーバー側が定義しているデータ送信の形式に従わないといけません。現在大部のAPIでは、JSONの利用が主流になっていて、application/x-www-form-urlencodedがそんなに多く使用されていません。そこで、この部分では、application/x-www-form-urlencodedとJSONの違いを皆さんに紹介しようと思います。

形式の違い

  • application/x-www-form-urlencodedはキーと値のペアの形式
  • JSONはオブジェクトや配列で階層的なデータ構造を表現

拡張性の違い

  • application/x-www-form-urlencodedはフラットなデータ
  • JSONは階層化して複雑なデータも表現できる

データ型の違い

  • application/x-www-form-urlencodedはテキストのみ
  • JSONは数値、真偽値、nullなど多様なデータ型が利用できる

解析のしやすさ

  • application/x-www-form-urlencodedはパースしなければ内容が分からない
  • JSONは人間にも読みやすい形式

データ量の違い

  • JSONの方が圧縮率が高く、データ量を減らせる

国際化のしやすさ

  • JSONはUnicode対応なので多言語に対応しやすい

セキュリティの違い

  • JSONは構造が見えにくいのでセキュリティ面で有利

上記の内容から、application/x-www-form-urlencodedはシンプルなキーと値のみの表現に限られることがわかると思います。したがって、複雑なデータ構造を扱うWeb APIではJSONの方が適していると言えます。後方互換性など特別な理由がない限り、JSONを利用するのが一般的です。

x-www-form-urlencoded形式でリクエストを送信

APIテスト時に、APIサーバーが要求するデータ形式を利用してデータを送信する必要があります。そうしないと、正確にAPIにアクセスすることができません。それでは、APIのリクエストを送信する場合は、どうやってx-www-form-urlencoded形式で送信すればいいのでしょうか?

button

Apidogは、非常に使いやすいAPIクライアントツールとして、GUIで楽にAPIにアクセスできます。次のように、APIリクエストを送信する前に、GUIで簡単にx-www-form-urlencoded形式で送信するデータを指定することができます。

apidogでx-www-form-urlencodedを指定

このように、ApidogでAPIのリクエストを送信する場合、「Body」タブを切り替えて「x-www-form-urlencoded」を選択すると、content-type=application/x-www-form-urlencodedという項目が自動的にHeaderに追加されます。そして、この画面で、送信したいデータをGUIで直感的に記入可能ですので、非常に便利です。

まとめ

本文では、application/x-www-form-urlencodedというコンテンツタイプを詳しく皆さんに紹介しました。application/x-www-form-urlencoded形式でAPIリクエストを簡単に送信するために、Apidogという使いやすいツールを利用することがおすすめです。

ApidogはGUIベースで操作性が高いAPIテストツールです。リクエストのBodyタブで「x-www-form-urlencoded」を選択するだけで、簡単にその形式での送信ができますので、ぜひお試しください。

button

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

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