HTTP(三)常见的POST提交数据方式

Http协议是建立在TCP/IP上的无状态应用层协议。Http请求分为三个部分: 状态行, 请求头, 消息主题。

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

服务器端语言如java, 内置了自动解析常见数据格式的功能。服务器通常根据请求头(headers)中的Content-Type字段来获知请求中的消息主体是用何种方式编码, 再对主体进行解析。

application/x-www-form-urlencoded
最常见的Post提交数据的方式。浏览器原生form表单, 如果不设置enctype属性, 那么默认就会以application/x-www-form-urlencoded方式提交数据。当action为get的时候, 浏览器用x-www-form-urlencoded的编码方式把form数据数据按照key1=val1&key2=val2的方式进行编码, 然后把这个字串append到url后面, 用?分割。当action为post的时候, 浏览器把form数据封装到http body中, 然后发送到server。

用ajax提交数据, 也是使用这种方式, jqery的ajax, content-type默认值是application/x-www-form-urlencoded;charset=utf-8

multipart/form-data

使用表单上传文件时, 必须让form的enctyped等于这个值

以上这两种post数据的方式, 都是浏览器原生支持的, 而且现阶段原生form表单也支持这两种方式

application/json

用这个作为content-type的请求头, 告诉服务器端消息主体是序列化后的JSON字符串。除低版本的IE之外的各大浏览器都原生支持JSON.stringify, 服务器端也有处理JSON的函数

JSON格式支持比键值对复杂的多的结构化数据

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值