html中post提交数据格式,http请求四种常见的POST提交数据
⽅式
http请求常见的content-type分为4种:application/json、x-www-form-urlencoded、multipart/form-data、text/plain。
enctype属性规定在发送到服务器之前应该如何对表单数据进⾏编码。默认地,表单数据会编码为“application/x-www-form-urlencoded"。就是说,在发送到服务器之前,所有字符都会进⾏编码(空格转换为”+“加号,特殊符号转换为ASCII HEX值)。
enctye可选项如下:
1 概述
html中提交表单用什么属性HTTP/1.1 协议规定的HTTP请求⽅法有OPTIONS、GET、HEAD、POST、PUT、DELETE、TRACE、CONNECT这⼏种。其中POST ⼀般⽤来向服务端提交数据,本⽂主要讨论POST提交数据的⼏种⽅式。
HTTP协议是以ASCII码传输。他是建⽴在TCP/IP协议之上的应⽤层规范,规定HTTP请求分为三个部分:
。状态⾏
。headers请求头
。entity-body消息主体
类似于下⾯这样:
HTTP协议规定POST提交的数据必须放在消息主体(entity-body)中,但并没有规定数据必须使⽤什么编码⽅式。实际上,开发者完全可以⾃⼰决定消息主体的格式,只要最后发送的HTTP请求满⾜上⾯的格式就可以。
单数,数据发送出去,还要服务端解析成功才有意义。⼀般服务端语⾔如php、python等,以及他们的framework,都内置了⾃动解析常见数据格式的功能。服务端通常是根据请求头(headers)中的Content-Type字段来获知请求中的消息主体是⽤何种⽅式编码,再对主体进⾏解析。所以POST提交数据包含了Content-Type和消息主体编码⽅式两部分,下⾯就正式开始介绍它们。
2、简介
1)application/x-www-form-urlencoded
HTTP中默认的提交数据的⽅式。浏览器的原⽣
表单,如果不设置enctype属性,那么最终就会以application/x-www-form-urlencoded⽅式提交数据。请求类似于下⾯这样:
通过抓包结果我们能得到以下结论:
。Content-Type被指定为application/x-www-form-urlencoded
。
提交的数据按照key1=val1&key2=val2的⽅式进⾏编码,key和val都进⾏了URL转码。⼤部分服务端语⾔都对这种⽅式有很好的⽀持。
2)multipart/form-data
⼀个常见的POST数据提交的⽅式。我们使⽤表单上传⽂件时,必须将enctype设为multipart/form-data。
3)application/json
application/json作为请求头,⽤来告诉服务端消息主体是序列化的JSON字符串。⽅便提交复杂的结构化数据,特别适合RESTFul接⼝。最终发送的请求类似下⾯这样:
各⼤抓包⼯具如Chrome⾃带的开发者⼯具、Firebug、Fiddler,都会以树形结构展⽰JSON数据,⾮常友好。最终发送的请求的是:
4)text/xml
XML-RPC(XML Remote Procdure Call)。它是⼀种使⽤HTTP作为传输协议,XML作为编码⽅式的远程调⽤规范。典型的XML-RPC请求是这样的:
XML-RPC协议简单、功能够⽤,各种语⾔的实现都有。它的使⽤也很⼴泛,如 搜索引擎的ping服务等。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论