post
参照する質問で述べたように、フォームのエンコーディングを送信する方法は2つあります。application/x-www-form-urlencoded
またはmultipart/form-data
。
両方ともpost
リクエストの本文で送信されます。get
URL自体で渡される場所とは異なります。
両方の例を次に示し
ます。http ://www.htmlcodetutorial.com/forms/form_enctype.html
part
リクエストのurlencoded形式でのパラメータ名の他の表現であると言えますget
。
urlencoded: realname=
パート: Content-Disposition: form-data; name="realname"
異なる部分は、ヘッダーで定義された境界によって区切られます。
Content-type: multipart/form-data; boundary=---------------------------7cd1d6371ec
エンコーディングの違いを編集する最も重要なことは、クライアントを使用すると、値のタイプ(たとえば)やファイル名などのmultipart/form-data
追加情報をキーと値のペアに追加できることです。Content-Type: image/jpeg
この情報を使用して、サーバーがさまざまなタイプの値に対して特定のアクションを実行することができます。
使用する場合application/x-www-form-urlencoded
、標準化された方法でキーと値のペアの追加情報を保存することはできません。
これが、リクエストmultipart/form-data
とともにファイルを送信する場合に使用する必要がある理由です。post
これは、ファイルをurl形式でbase64エンコードされた値として渡すことができないためではなく、urlencodingを使用して、ファイルが文字列ではなくファイルであることをサーバーに通知する標準的な方法がないためです。