multipart/form-data和application/x-www-form-urlencoded的区别

在Form元素的语法中,EncType表明提交数据的格式

用 Enctype 属性指定将数据回发到服务器时浏览器使用的编码类型。
下边是说明:
application/x-www-form-urlencoded: 窗体数据被编码为名称/值对。这是标准的编码格式。
multipart/form-data: 窗体数据被编码为一条消息,页上的每个控件对应消息中的一个部分。
text/plain: 窗体数据以纯文本形式进行编码,其中不含任何控件或格式字符。

补充
form的enctype属性为编码方式,常用有两种:application/x-www-form-urlencoded和multipart/form-data,默认为application/x-www-form-urlencoded。

当action为get时候,浏览器用x-www-form-urlencoded的编码方式把form数据转换成一个字串(name1=value1&name2=value2...),然后把这个字串append到url后面,用?分割,加载这个新的url。
当action为post时候,浏览器把form数据封装到http body中,然后发送到server。

如果没有type=file的控件,用默认的application/x-www-form-urlencoded就可以了。
但是如果有type=file的话,就要用到multipart/form-data了。浏览器会把整个表单以控件为单位分割,并为每个部分加上Content-Disposition(form-data或者file),Content-Type(默认为text/plain),name(控件name)等信息,并加上分割符

时间: 2024-10-24 18:20:13

multipart/form-data和application/x-www-form-urlencoded的区别的相关文章

AJAX POST请求中參数以form data和request payload形式在servlet中的获取方式

HTTP请求中,假设是get请求,那么表单參数以name=value&name1=value1的形式附到url的后面,假设是post请求,那么表单參数是在请求体中,也是以name=value&name1=value1的形式在请求体中.通过chrome的开发人员工具能够看到例如以下(这里是可读的形式,不是真正的HTTP请求协议的请求格式): get请求: RequestURL:http://127.0.0.1:8080/test/test.do?name=mikan&address=

AJAX POST请求中参数以form data和request payload形式在servlet中的获取方式

HTTP请求中,如果是get请求,那么表单参数以name=value&name1=value1的形式附到url的后面,如果是post请求,那么表单参数是在请求体中,也是以name=value&name1=value1的形式在请求体中.通过chrome的开发者工具可以看到如下(这里是可读的形式,不是真正的HTTP请求协议的请求格式): get请求: RequestURL:http://127.0.0.1:8080/test/test.do?name=mikan&address=str

【转】form data和request payload的区别

HTML <form> 标签的 enctype 属性 在下面的例子中,表单数据会在未编码的情况下进行发送: <form action="form_action.asp" enctype="text/plain">   <p>First name: <input type="text" name="fname" /></p>   <p>Last name: 

form data和request payload的区别

HTML <form> 标签的 enctype 属性 在下面的例子中,表单数据会在未编码的情况下进行发送: <form action="form_action.asp" enctype="text/plain">   <p>First name: <input type="text" name="fname" /></p>   <p>Last name: 

表单提交数据格式form data

前言: 最近遇到的最多的问题就是表单提交数据格式问题了. 常见的三种表单提交数据格式,分别举例说明:(项目是vue的框架) 1.application/x-www-form-urlencoded 提交表单方法,js代码如下: submitForm() { let data = 'title="标题"&content="内容"&pic[]="image1"&pic[]="image2"&pic[]

HTML5 Form Data 对象的使用

HTML5 Form Data 对象的使用 MDN: https://developer.mozilla.org/zh-CN/docs/Web/Guide/Using_FormData_Objects XMLHttpRequest Level 2 添加了一个新的接口——FormData.利用 FormData 对象,我们可以通过 JavaScript 用一些键值对来模拟一系列表单控件,我们还可以使用 XMLHttpRequest 的 send() 方法来异步的提交表单.与普通的 Ajax 相比,

HTTP请求中的Form Data与Request Payload的区别

前端开发中经常会用到AJAX发送异步请求,对于POST类型的请求会附带请求数据.而常用的两种传参方式为:Form Data 和 Request Payload. GET请求 使用get请求时,参数会以key=value的形式拼接在请求的url后面.例如: http://m.baidu.com/address/getlist.html?limit=50&offset=0&t=1502345139870 但是受限于请求URL的长度限制,一般参数较少时会使用get请求. POST请求 当参数数量

Vue-resource中post请求将data数据以request payload转换为form data的形式

今天在做项目的时候 需要往api中发送一个json格式的对象,但是怎么改都不行,当然,使用的vue 的 http方法. 而且,开始使用时 vue-resource中post请求时的一个坑,vue-resource中post发送的数据默认以request payload的形式,而一般我们使用的都是form data的形式. 后来发现,只需要在main.js中加入: Vue.http.options.emulateJSON = true; Vue.http.options.headers = { '

query string parameters 、 Form Data 、 Request Payload

微信小程序ajax向后台传递参数的时候总是报400错误 然后看了一下network 发现是query string parameters,但是我写的header如下 header:{ "Content-Type":'json' } 所以小程序总是报400 未完待续.... 附对照表 待完善 header:{ "Content-type":'json' }  Request Payload header:{ "Content-type":'x-ww

【Java123】HTTP Post Form Data 传输的Java实现

今天在开发PT工具的时候,有一些手动预处理设置的步骤用程序自动化实现. 具体实现需要给系统服务器发送一个HTTP POST请求. 实现时候发现Url并不是直接可以使用,POST请求还需要给定Form Data. 这部分完全小白,需要进一步了解学习. https://www.cnblogs.com/aaronjs/p/4165049.html https://blog.csdn.net/ght886/article/details/79089718 https://blog.csdn.net/cj