51Testing软件测试论坛

标题: POST 提交数据类型(一) [打印本页]

作者: Onecpt    时间: 2018-4-19 17:38
标题: POST 提交数据类型(一)
本帖最后由 Onecpt 于 2018-4-19 18:05 编辑

HTTP/1.1 协议规定的 HTTP 请求方法有 OPTIONS、GET、HEAD、POST、PUT、DELETE、TRACE、CONNECT 这几种。其中,POST 一般用来向服务端提交数据,我们知道,HTTP 协议是以 ASCII 码传输,建立在 TCP/IP 协议之上的应用层规范。规范把 HTTP 请求分为三个部分:状态行、请求头、消息主体。类似于下面形式:
  1. <method> <request-URL> <version>

  2. <headers>

  3. <entity-body>
复制代码
协议规定,POST 提交的数据必须放在消息主体(entity-body)中,但协议并没有规定数据必须使用什么编码方式。实际上,开发者完全可以自己决定消息主体的格式,只要最后发送的 HTTP 请求满足上面的格式就可以。

但是,数据发送出去,还要服务端成功解析才有意义。一般服务端语言如 php、python、Java、.NET 等,以及它们的 framework,都内置了自动解析常见数据格式的功能。服务端通常是根据请求头(headers)中的 Content-Type 字段来获知请求中的消息主体是用何种方式编码,再对主体进行解析。也就是说, Content-Type 指定了消息主体中的编码方式 。因此,POST 提交数据方案,直接跟 Content-Type 和消息主体两部分有关。
application/x-www-form-urlencoded

这是最常见的 POST 提交数据的方式。浏览器的原生 form 表单,如果不设置 enctype 属性,那么最终就会以 application/x-www-form-urlencoded 方式提交数据( enctype 的 POST 默认方式)
HTTP的消息体以查询字符串的方式发送(/值对,用&分割,名字和值用=连接)






作者: qqq911    时间: 2018-4-25 11:16
感谢分享
作者: Miss_love    时间: 2020-12-29 17:04
感谢分享




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2