multipart/form-data の境界とは何ですか? 質問する

multipart/form-data の境界とは何ですか? 質問する

について質問したいのですが、multipart/form-dataHTTP ヘッダーに が見つかりましたContent-Type: multipart/form-data; boundary=???

はユーザーが自由に定義できますか???? それとも HTML から生成されますか? を定義することは可能ですか??? = abcdefg?

ベストアンサー1

???ユーザーが自由に定義できますか?

はい。

それとも HTML によって提供されるのでしょうか?

いいえ。htmlそれとは何の関係もありません。以下をお読みください。

???を と定義することは可能ですかabcdefg?

はい。

次のデータを Web サーバーに送信する場合:

name = John
age = 12

使用法はapplication/x-www-form-urlencoded次のようになります:

name=John&age=12

ご覧のとおり、サーバーはパラメータがアンパサンドで区切られていることを認識しています&&パラメータ値に が必要な場合は、エンコードする必要があります。

では、 を使用して HTTP リクエストを受信した場合、サーバーはどのようにしてパラメータ値の開始位置と終了位置を認識するのでしょうかmultipart/form-data?

境界 を使用すると、 と同様になります&

例えば:

--XXX
Content-Disposition: form-data; name="name"

John
--XXX
Content-Disposition: form-data; name="age"

12
--XXX--

その場合、境界値は です。サーバーが受信したデータをどのように分割するかをXXX認識できるように、ヘッダーで境界値を指定します。Content-Type

したがって、次のことを行う必要があります。

  • サーバーに送信される HTTP データには表示されない値を使用します。

  • 一貫性を保ち、リクエスト メッセージ内のすべての場所で同じ値を使用します。

おすすめ記事