美文网首页
常见的四种POST提交数据方式

常见的四种POST提交数据方式

作者: 金融测试民工 | 来源:发表于2020-04-26 15:37 被阅读0次

我们知道HTTP/1.1协议下规定http请求方式包含以下几种:GET,POST,HEAD,PUT,DELETE,TRACE等方式。其中POST的方式通常用来向服务器提交数据使用,本文就简述下常见的四种POST提交数据方式。

HTTP协议规定POST提交的数据必须放在消主体(entity-body)中才能进行请求,但是协议并没有规定实体中数据的编码格式,这样一来。我们可以根据自己的需求来post数据。但是数据发送之后,服务端需要解析才可以。服务器通过请求头中的Content-type字段来获知请求中的消息主体的编码方式,从而获取消息主体的内容。接下来主要讲下POST请求中常见的Content-type和对应的消息主体。

第一,application/x-www-form-urlencoded

这种是最常见的表单提交方式,浏览器原生的提交方式,如果没有设置enctype,默认采用这种方式提交。

POST http://www.example.com HTTP/1.1Content-Type: application/x-www-form-urlencoded;charset=utf-8

如果是按照这种格式来提交,那么数据是按照key1=v1&key2=v2的方式进行编码的,key和value都需要进行URL编码。大部分的服务端语言都对该方式有良好的支持。

第二,multipart/form-data

又是一种常见的表单提交方式,同样属于浏览器原生的提交方式,多用于提交文件到服务端。

POST http://www.example.com HTTP/1.1

Content-Type:multipart/form-data; boundary=----WebKitFormBoundaryrGKCBY7qhFd3TrwA

------WebKitFormBoundaryrGKCBY7qhFd3TrwA

Content-Disposition: form-data; name="text"title------WebKitFormBoundaryrGKCBY7qhFd3TrwA

Content-Disposition: form-data; name="file"; filename="chrome.png"Content-Type: image/pngPNG ... content of chrome.png ...

------WebKitFormBoundaryrGKCBY7qhFd3TrwA

这种方式稍微复杂一点,需要生成一个bondary来分割不同的字段,避免与正文重复。


第三,application/json

这种类型的提交方式大家也不陌生,用来告诉服务器消息主体是序列化后的json串。由于现在json规范的流行,各大服务器语言对json的支持也非常良好;

POST http://www.example.com HTTP/1.1Content-Type: application/json;charset=utf-8

这种方式对于请求程度比较深,消息主体比键值对复杂的结构化数据更适用;


第四,text/xml

这是一种采用http协议,xml编码的提交方式,使用不多;

POST http://www.example.com HTTP/1.1Content-Type: text/xml

以上四种请求方式中,第一种和第三种在我们模拟请求的时候使用比较多,差别就是设置Header的时候要注意传入不同的content-type;

相关文章

网友评论

      本文标题:常见的四种POST提交数据方式

      本文链接:https://www.haomeiwen.com/subject/oefjwhtx.html