Serviceを読んで理解し、同意したものとみなします。スタック・オーバーフローはプログラマーとプログラミングに熱心な人のためのQ&Aサイトです。form-dataのクライアントとサーバの実装について送信するデータを、boundaryで指定した文字列で囲うという仕様のようなのですが、ここで疑問があります。form-dataをパースをどうすれば効率的に行える?この仕様だと、テキストデータは行単位で処理できるからマシだとして、バイナリデータは、全データをboundaryと比較しながらパースする必要があり、非常に非効率であるように思います。クライアントやサーバーのサンプルコードでは、POSTするデータはテキストであることが前提なものしか見当たりませんでした。票4自分もこのあたりの専門家ではないので、これまでの経験から回答させていただきます。実装次第ですが、ご指摘されているように、クライアント側はデータ内にBoundaryと同じ文字列が含まれていないことをチェックした方が良いと思います。クライアントを実装する言語によりますが、バイナリを扱う機能が不向きで遅い言語だと、確かにチェックは少し時間がかかるかも知れませんね。そこまでシビアなものを作らないのであれば、実際上はノーチェックでも問題ないと思っています。サーバー側も全データをboundaryと比較しながらパースする必要がありますが、こちらも、実装する言語によりますが、1バイトずつ比較する処理をC言語等で実装していくのであれば、コード上は長くなるものの、実行時の負荷はさしてかからないと思います。クライアント側だけですが、javascriptでバイナリをmultipart-postするサンプルを以前作ったことがあるので、参考にしてみてください。http://qiita.com/KNaito/items/54b1bf61a3c678ca28b1ただし、データ内のBoundaryチェックは行っていません。個の銅バッジ1なるほど。multipart部分にもContent-Lengthを指定できればよかったんですけどね。こんな仕様になったのか疑問です。歴史的事情ということで割り切るしかないんですかねー。|回答スタック・オーバーフローに参加してくれて、ありがとうございます!質問の回答を共有してください。回答を説明し、自分の検討結果も共有してください。意見を述べること(意見を述べるなら、参照リソース、自分の経験で意見をサポートしてください)さらにサポートが必要な場合このヘルプを参考してください。“回答を投稿”をクリックすることで利用規約、プライバシーポリシー、及びクッキーポリシーに同意したものとみなされます。タグが付いた他の質問を参照するか、自分で質問をする。開催しました!🎉コメントで回答する理由を教えてください関連する質問1HTTP1.1のパイプライン処理でサーバーがリクエストをどのくらい待てばいいか?0formからPOST送信される階層化された値をパラメータとして取得したい。質問のフィードこのRSSフィードを購読するには、このURLをコピーしてRSSリーダーに貼り付けてください。