はじめに
- 別の意見がある場合コメントで教えてもらえると幸いです
- 間違っている部分があったらコメントで教えてもらえると幸いです
結論
- 場合によると思います
フローチャート
比較表
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リクエストの組み立ての簡便さ は各種ライブラリがリクエスト文を作成してくれるので気にする必要はないと思います |