51Testing软件测试论坛

标题: POST提交数据类型(一)application/x-www-form-urlencoded [打印本页]

作者: Onecpt    时间: 2018-4-19 18:10
标题: POST提交数据类型(一)application/x-www-form-urlencoded
本帖最后由 Onecpt 于 2018-4-19 18:21 编辑




       HTTP/1.1 协议规定的 HTTP 请求方法有OPTIONSGETHEADPOSTPUTDELETETRACECONNECT这几种。其中,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 默认方式)










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