Content-Type中application/x-www-form-urlencoded 和 multipart/form-data的区别
1.什么是Content-Type
Form的enctype属性表示页面表单数据向服务端传输时的编码方式,
常用有两种:application/x-www-form-urlencoded和multipart/form-data,
默认为application/x-www-form-urlencoded
2.application/x-www-form-urlencoded
窗体数据被编码为名称/值对,这是标准且默认的编码格式。当action为get时,客户端把form数据转换成一个字符串append到url后面,用?分割。
当action为post时,浏览器把form数据封装到http body中,然后发送给server
application/x-www-form-urlencoded传递时的数据构造:
username=shijingjing&email=shijingjing07@126.com
3.multipart/form-data
multipart表示的意思是单个消息头包含多个消息体的解决方案。multipart媒体类型对发送非文本的各媒体类型是有用的。一般多用于文件上传
当客户端发起请求时:
请求头包含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传递时的数据构造,见图: