前者是 a=b&b=c&c=%asdf&xxx 是一种键值对的形式,中间以&作为分隔符,其实就像浏览器地址框中的url一样会被转义。也就是会被js中encodeURIComponent方法
后者可以理解为是一种增强的变种,用于传输文件,因为内部不会被转义,分隔符也不再是&
在请求头的content-type中,会指明分隔符
请求头:
Cotent-Type:multipart/form-data; boundary=—xxxxxxxx
在请求头的content-type属性中,指明了boundary字段,代表分隔符,
之后的请求体大致如下:
请求体中的数据不会被转码
对于二进制文件,会直接上传他们的内容,不转码原来是什么就是什么,所以相比转码后传数据更小(之前的%转码方式使数据占用字节变大了)