Form Encoding
フォームエンコーディング(application/x-www-form-urlencoded)は HTML フォームが送信時にキーと値の組を符号化する方式で、空白を %20 ではなく + にする。
目的
初期のウェブフォーム送信のために RFC 3986 より緩い符号化を提供し、歴史的な実装との互換性を保つ。
メカニズム
キーと値はそれぞれパーセントエンコードされるが、空白は %20 ではなく + になる。組は = で連結され & で区切られる。非 ASCII 文字はページの文字セット(通常 UTF-8)でバイト化されてからパーセントエンコードされる。
ユースケース
- HTML フォームの GET/POST 送信
- OAuth 1.0 署名パラメータの符号化
- API の application/x-www-form-urlencoded リクエストボディ
- URLSearchParams を使った fetch ボディ
例
- 入力
a=hello world&b=a+bOutputa=hello+world&b=a%2BbSpace becomes +, and + becomes %2B
よくあるエラー
- Encoding a space as %20 instead of +, causing server-side parsing differences
- Use URLSearchParams for form scenarios and encodeURIComponent for URL components