Post请求的两种编码格式:application/x-www-form-urlencoded和multipart/form-data

在常见业务开发中,POST请求常常在这些地方使用:前端表单提交时、调用接口代码时和使用Postman测试接口时。

一、前端表单提交时

application/x-www-form-urlencoded

First name:
Last name:

通过测试发现可以正常访问接口,在Chrome的开发者工具中可以看出,表单上传编码格式为application/x-www-form-urlencoded(Request Headers中),参数的格式为key=value&key=value。


Post请求的两种编码格式:application/x-www-form-urlencoded和multipart/form-data_第1张图片
image.png

我们可以看出,服务器知道参数用符号&间隔,如果参数值中需要&,则必须对其进行编码。编码格式就是application/x-www-form-urlencoded(将键值对的参数用&连接起来,如果有空格,将空格转换为+加号;有特殊符号,将特殊符号转换为ASCII HEX值)。
application/x-www-form-urlencoded是浏览器默认的编码格式。对于Get请求,是将参数转换?key=value&key=value格式,连接到url后

multipart/form-data

First name:
Last name:

我们在开发者工具中可以看出multipart/form-data不会对参数编码,使用的boundary(分割线),相当于&,boundary的值是----Web**AJv3。


Post请求的两种编码格式:application/x-www-form-urlencoded和multipart/form-data_第2张图片
image.png

总结

POST请求的两种编码格式:application/x-www-urlencoded是浏览器默认的编码格式,用于键值对参数,参数之间用&间隔;multipart/form-data常用于文件等二进制,也可用于键值对参数,最后连接成一串字符传输(参考Java OK HTTP)。除了这两个编码格式,还有application/json也经常使用。
参考

你可能感兴趣的:(Post请求的两种编码格式:application/x-www-form-urlencoded和multipart/form-data)