application/x-www-form-urlencoded multipart/form-data text/plain 的区别和作用

我们知道在通过POST方式向服务器发送AJAX请求时最好要通过设置请求头来指定为application/x-www-form-urlencoded编码类型。知道通过表单上传文件时必须指定编码类型为"multipart/form-data"。而text/plain是我们在做纯文本传输时防止接收数据时出现编码混乱而设置的。可是我一直没有搞清楚为什么要这么设置。后来查了些资料才找到了三者的区别。

application/x-www-form-urlencoded

这是通过表单发送数据时默认的编码类型。我们没有在from标签中设置enctype属性时默认就是application/x-www-form-urlencoded类型的。application/x-www-form-urlencoded编码类型会把表单中发送的数据编码为名称/值对。这是标准的编码格式。当表单的ACTION为POST的时候,浏览器把form数据封装到http
body中,然后发送到服务器。当表单的ACTION为GET的时候,application/x-www-form-urlencoded编码类型会把表单中发送的数据转换成一个字符串(name=coderbolg&key=php),然后把这个字符串附加到URL后面,并用?分割,接着就请求这个新的URL。当我们通过POST方式向服务器发送AJAX请求时最好要通过设置请求头来指定为application/x-www-form-urlencoded编码类型。方法是在xmlobject.open()方法之后添加

xmlobject.setRequestHeader("Content-Type","application/x-www-form-urlencoded")

不然服务器会接收不到POST过来的数据。

multipart/form-data

这个是专门用来传输特殊类型数据的,如我们上传的非文本的内容,比如图片或者MP3等。multipart/form-data编码类型会把表单中的发送的数据编码为一条消息,页面上每个表单控件对应消息中的一部分。当表单中有file类型控件并希望它正常工作的话(废话吧)就必须设置成multipart/form-data类型,浏览器会把整个表单以控件为单位分割,并为每个部分加上Content-Disposition(form-data或者file),Content-Type(默认为text/plain),name(控件
name)等信息,并加上分割符(boundary)。

text/plain

数据以纯文本形式进行编码,其中不含任何控件或格式字符。没有什么好说的。

application/x-www-form-urlencoded multipart/form-data text/plain
的区别和作用

时间: 2024-08-05 11:18:15

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

golang解析http multipart/form的三种方式

multipart/form-data 顾名思义可以上传多个form-data 并且用分隔符进行分割,多用于文件上传 1. http  multipart/form-data 请求样例 POST /handle HTTP/1.1 Host: localhost:8080 Connection: keep-alive Content-Length: 182537 Cache-Control: max-age=0 Content-Type: multipart/form-data; boundary

form enctype:"multipart/form-data",method:"post" 提交表单,后台获取不到数据

在解决博问node.js接受参数的时候,发现当form中添加enctype:"multipart/form-data",后台确实获取不到数据,于是跑到百度上查了一下,终于明白为什么了,下面转载一下原因吧: 1.get方式 get方式提交的话,表单项都保存在http header中,格式是 http://localhost:8080/hello.do?name1=value1&name2=value2这样的字符串.server端通过request.getParameter是可以取

IllegalArgumentException:@Body parameters cannot be used with form or multi-part encoding

使用retrofit时报错IllegalArgumentException:@Body parameters cannot be used with form or multi-part encoding即Body参数不能与形式或多部分编码中使用 因为是才刚学习使用时,不知道@FormUrlEncoded不能跟@Headers一起使用,代码中其实也没有用到FormUrlEncoded,去掉就可以了,之后尝试,运行成功,这里在学习中,记录一下. 原文地址:https://www.cnblogs.c

application/x-www-form-urlencoded multipart/form-data text/plain 后台返回的数据响应的格式类型

application/x-www-form-urlencoded multipart/form-data text/plain 为什么上传文件的表单里要加个属性 enctype  后台返回的数据响应的格式类型 上传文件的表单中<form>要加属性enctype="multipart/form-data",很多人只是死记硬背知道上传表单要这么 写,知其然而不知其所以然.那到底为什么要添加这个属性呢?它是什么意思呢?它又有什么其他可选值呢? 其实form表单在你不写encty

form表单中method的get和post区别

一.问题的提出   <form action="getPostServlet/getPost.do?param4=param4" method="get">     <input type="hidden" name="param1" value="param1">     <input type="hidden" name="param2&quo

application/x-www-form-urlencoded ,multipart/form-data, text/plain

APPLICATION/X-WWW-FORM-URLENCODED MULTIPART/FORM-DATA TEXT/PLAIN 后台返回的数据响应的格式类型 application/x-www-form-urlencoded multipart/form-data text/plain 为什么上传文件的表单里要加个属性 enctype  后台返回的数据响应的格式类型 上传文件的表单中<form>要加属性enctype="multipart/form-data",很多人只是

application/x-www-form-urlencoded &amp; multipart/form-data &amp; text/plain http://mikzhang.iteye.com/blog/1101705

FORM元素的enctype属性指定了表单数据向服务器提交时所采用的编码类型 我们知道在通过POST方式向服务器发送AJAX请求时最好要通过设置请求头来指定为application/x-www-form-urlencoded编码类型.知道通过表单上传文件时必须指定编码类型为"multipart/form-data".而text/plain是我们在做纯文本传输时防止接收数据时出现编码混乱而设置的.为什么要这么设置?以下三者的区别. application/x-www-form-urlen

delphi form.hide和form.visiable 失效?

后来我发现form.hide和form.visiable 全部失效了,然后用 ShowWindow(Application.Handle, SW_HIDE);   ShowWindow(Application.MainFormHandle, SW_HIDE);

使用Form Builder创建Form具体步骤

使用Oracle Form Builder创建Form具体步骤 (Data Source为Table) 说明:当Block使用的Data Source为Table时,Form会自动Insert,Update,Delete,Lock.若要显示non-database Item,需在POST-QUERY Trigger 里手动写代码来为non-database Item取值. 步驟一:分析需求设计Table架构 1). Table需指定一Unique ID,可为其创建Unique Index,在Fo