关于Content-Type中application/x-www-form-urlencoded 和 multipart/form-data的区别及用法

 

Form的enctype属性表示页面表单数据向服务端传输时的编码方式,常用有两种:application/x-www-form-urlencoded 和 multipart/form-data,默认为application/x-www-form-urlencoded。
1、application/x-www-form-urlencoded: 
窗体数据被编码为名称/值对,这是标准且默认的编码格式。当action为get时候,客户端把form数据转换成一个字串append到url后面,用?分割。当action为post时候,浏览器把form数据封装到http body中,然后发送到server。
application/x-www-form-urlencoded 传递时的数据构造:
......
username=twm&email=good@qq.com
......

2、multipart/form-data:
multipart表示的意思是单个消息头包含多个消息体的解决方案。multipart媒体类型对发送非文本的各媒体类型是有用的。一般多用于文件上传。

multipart/form-data只是multipart的一种。目前常用的有以下这些类型(注:任何一种执行时无法识别的multipart子类型都被视为子类型"mixed")

 

HTML FORM data (see Ch. 9 and App. B)multipart/form-data
Messages with multiple partsmultipart/mixed
Messages with multiple, alternative partsmultipart/alternative
Message with multiple, related partsmultipart/related
Multiple parts are digestsmultipart/digest
For reporting of email status (admin.)multipart/report
Order of parts does not mattermultipart/parallel
Macintosh file datamultipart/appledouble
Aggregate messages; descriptor as headermultipart/header-set
Container for voice-mailmultipart/voice-message
Infinite multiparts - See Chapter 9 (Netscape)multipart/x-mixed-replace


当客户端发起起求时:
请求头包含Content-Type:"multipart/form-data; boundary=---------------------------30613490016641",表明form的enctype为multipart/form-data,同时分隔每个控件field的分割符(boundary)是'---------------------------30613490016641'。
请求内容的每个field被分成小部分,而且包含一个value是"form-data"的"Content-Disposition"的头部;一个"name"属性对应field的ID。

multipart/form-data 传递时的数据构造,见图:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值