【java】form data 和request payload 和Query String Parameters的区别?
求解释一下form data 和request payload 和Query String Parameters的区别,使用post还是get请求发出的,content-type怎么设置之类的
回答
URL 的格式如下:scheme://user:[email protected]:port/path;params?query#frag
query
部分就是 Query String Parameters
HTTP 的请求报文格式如下
<method> <request-URL> <version><header>
<entity-body>
request payload 和 form data 都是 entity-body 块的内容,只是由 Content-type
区分解析行为。
一般 form-data 是 `Content-type=application/x-www-form-urlencoded
其余的一般都默认是 request payload (文件上传不知道算不算,有兴趣可以自行搜索一下)。
Query String Parameters 无论什么请求方式都可以带,取决于自己要不要解析。
entity-body 则是要部分请求方式
POST、PUT、PATCH、DELETE、OPTIONS、(UN)LINK、LOCK、PROPFIND、VIEW
之类的都可以带 body
Demo: http://wfquery.top/demo/07.fo...
- formdata 当使用FormData提交 POST 请求数据时(可以提交blob数据, 也就是支持文件上传), 默认提交 数据在request.plaload
$.ajax({ type: 'POST',
url: '/',
form: $('form')
});
https://github.com/shy2850/wf...
- 使用GET请求时,数据一般是querystring
- 如果你使用POST提交querystring,需要设置 Content-Type: 'application/x-www-form-urlencoded', 数据通过 xhr.send(data)提交
https://github.com/shy2850/wf...
- 以上,算是比较常用的表单数据提交方式, 你还可以直接提交json格式字符串之类的,服务端通过获取整个query去parseJSON, 文件上传的时候 xhr.send(buffer) 也可以直接提交buffer。
事实上前端是不是需要设置请求头的 “Content-Type” 完全由服务端决定的,以上不管是 querystring-param 还是 query-json 格式都可以在同等位置提交,所以很多时候我们前后端协议约定这个需要设置一下 格式交互规范,你在项目里也可以不遵循这个约定,自己定义规则。
以上是 【java】form data 和request payload 和Query String Parameters的区别? 的全部内容, 来源链接: utcz.com/a/74146.html