x-www-form-urlencodedとmultipart / form-dataの違い

おわりに

バイナリデータ転送がある場合は、multipart / form-dataを使用します。それ以外の場合は、x-www-form-urlencodedを使用します。

違い

x-www-form-urlencodedとmultipart / form-dataは、POSTリクエストをサーバーに送信するときのHTTPプロトコルの2つのエンコーディングスキームであり、フォームフォームのenctype属性に対応しています。

<!DOCTYPE html>
<html>
<head> 
    <meta charset="utf-8"> 
</head>
<body>
    <form action="/" method="POST" enctype="application/x-www-form-urlencoded">
        姓名: <input type="text" name="name"><br>
        年龄: <input type="text" name="age">
        <input type="submit" value="提交">
    </form>
</body>
</html>

x-www-form-urlencoded

デフォルトでは、このエンコードでは、データは名前と値のデータのペアを介して転送されます。

POST / HTTP/1.1
Host: localhost:8080
Content-Length: 233

name=june&age=12

エンコーディングにUnicode文字が含まれている場合は、送信前に変換する必要があります。次に例を示します。

name=%E6%B5%8B%E8%AF%95&age=12

%で始まり、その後にバイトを表す2つの16進数が続きます。UTF-8エンコードを使用して、文字をバイトシーケンスに変換します。

multipart / form-data

ファイルをアップロードする必要がある場合は、このエンコードを使用します。データは指定された区切り文字で区切られ、データをトランスコードする必要はありません。

POST / HTTP/1.1
Host: localhost:8080
Content-Length: 233
Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryfPIuyKYREDzq8zXG

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

张三
------WebKitFormBoundaryfPIuyKYREDzq8zXG
Content-Disposition: form-data; name="age"

12
------WebKitFormBoundaryfPIuyKYREDzq8zXG--

これでRESTfulスタイルのインターフェースが人気になり、リクエストの本文ではデータ形式としてjsonが使用され、対応するContent-Typeはapplication / jsonになります

参考文献

application-x-www-form-urlencoded-or-multipart-form-data

おすすめ

転載: www.cnblogs.com/junejs/p/12686884.html