博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
request payload
阅读量:7259 次
发布时间:2019-06-29

本文共 953 字,大约阅读时间需要 3 分钟。

最近在调试代码时发现有Request Payload的情况,从网上查一些文件,也都有较多的描述。下面我只是说明一下大家没有注意的地方

关于HTTP请求,都是通过URL及参数向后台发送数据。主要方式有GET, POST。对这两种方式,GET的参数都会放在URL的后面,一般称之为query参数。POST的都放在HTTP的报文BODY里,可以query参数的形式,也可以multipart格式,还有一种JSON格式,即Request Payload格式。

multipart, Request Payload是通过request Header中的ContentType区分的:

multipart格式:ContentType: multipart/form-data;boundary=--xxxxxxx, 注意对multipart的格式都要有boundary做为BODY中的参数分隔符,(关于该格式的讲解以后再写)

Request Payload格式:ContentType: application/json

在后台的处理中对这三种格式的处理是不相同的。

GET格式都在URL后面,以key1=value1&key2=value2的KV格式存在,且不会很长(协议规定为1024个字节,但现在浏览器都会适当加长一些)。后台处理这种参数时可以使用同步处理,因为报文头收到后参数也就收全了。

POST时参数也可以使用上面的KV格式存在,但是会放在报文体中。当数据量不大时,一般也会和报文头一起收到。但数据量大的时会被拆分到多个报文中。因此必须使用异步方式收取。收全后处理同GET相同。

对于multipart格式,需要使用流方式边收边解析,因为有可能是大文件上传。

对于RequestPayload格式,可能也是异步发送(这个没有验证过),但数据量一般不会太大,因此它是一个JSON格式,因此必须等报文收全后才能处理。目前对JSON格式的支持比较普遍,都有相关的函数来解析JSON字符串,直接生成JSON对象,因此这种方式也是最方便的。特别是使用nodejs server时就可以直接在代码中使用了。

 

转载于:https://www.cnblogs.com/insane-Mr-Li/p/9715802.html

你可能感兴趣的文章
AngularJS1.3一些技巧
查看>>
数据仓库专题(15)-数据仓库建设基本原则-实践篇(求补充)
查看>>
Context
查看>>
Visio整体移动
查看>>
annex-b格式
查看>>
PING的过程解析
查看>>
在请求中使用XML Publisher生成文件报错
查看>>
aJax提交——服务端不能用request存储数据,session存数据客户端可以接收到
查看>>
Lucene中的合并因子mergeFactor
查看>>
C++ 关联容器
查看>>
使用NServiceBus开发分布式应用
查看>>
通用的C#导出Excel 支持2003及2007以上版本
查看>>
ER模型
查看>>
对象锁与线程的理解(摘录,个人比较好理解的文章)
查看>>
进程监控工具supervisor 启动Mongodb
查看>>
React Native 重新建项目遇到的一些问题
查看>>
dede使用方法---如何调用指定栏目
查看>>
使用CAReplicatorLayer [1]
查看>>
Windows redis集群搭建
查看>>
卸载compiz后重新安装出现问题的解决
查看>>