LoginSignup
24
12

More than 1 year has passed since last update.

POST時の Content-Type: application/json vs multipart/form-data vs application/x-www-form-urlencoded

Posted at

はじめに

  • 別の意見がある場合コメントで教えてもらえると幸いです
  • 間違っている部分があったらコメントで教えてもらえると幸いです

結論

  • 場合によると思います

フローチャート

Flowchart (1).jpg

比較表

application/json multipart/form-data application/x-www-form-urlencoded
表現力
Int,nullなどが使えるので

すべて文字列になるのでIntやnullを表すことができない

すべて文字列になるのでIntやnullを表すことができない
バイナリファイル送信の簡便さ
base64化が必要

base64化が必要
HTTPリクエストの組み立ての簡便さ
{},"",:を使ってリクエストパラメーターを組み立てる必要があるので

boundary 文字列とContent-Disposition パラメーターを作成する必要があるので

key=value を作るだけなので簡単
ペイロードのサイズの小ささ
{},"",: が入るが ○ と言えるでしょう

boundary 文字列とContent-Disposition パラメーターがあるので

パーセントエンコードで文字数が増えるので
CORS時の処理量
プリフライトリクエストが飛ぶので

プリフライトリクエストは飛ばない

プリフライトリクエストは飛ばない

HTTPリクエストの組み立ての簡便さ は各種ライブラリがリクエスト文を作成してくれるので気にする必要はないと思います

24
12
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
24
12