我读过很多关于使用GET和POST方法传递参数的堆栈溢出问题,但没有一个能满足我的好奇心。
我使用GET作为路径/查询参数检索数据传递参数,并使用POST将数据传递参数保存为具有内容-Type: application/json的请求体,有时还使用request body + path/query params (取决于我创建的仅用于简单度量的其他API)。
我的问题是什么时候使用内容类型: application/x-www-form-urlencoded。假设我想调用一个没有内容类型请求体的帖子-Type: application/json,但是对于params,我必须使用application/x-www-form-urlencoded Type,还是可以使用path/query params作为最佳实践?
将数据作为路径/查询参数发送与使用内容类型:application/x form-urlencoded的键值参数有什么区别?数据大小与此有关吗?
发布于 2022-03-10 19:09:13
将数据作为路径/查询参数发送与使用内容类型:application/x form-urlencoded的键值参数有什么区别?
考虑一下这个例子
PUT /example?a=b&c=d
Content-Type: application/x-www-form-urlencoded
d=e&f=g这里发生了什么事?这是一个请求,要求服务器替换当前由
/example?a=b&c=d带着有效载荷。换句话说,在成功的处理之后,我们会期望
GET /example?a=b&c=d产生这样的反应
200 OK
Content-Type: application/x-www-form-urlencoded
d=e&f=gPOST /example?a=b&c=d
Content-Type: application/x-www-form-urlencoded
d=e&f=g对于POST,除了“替换当前的表示”之外,POST代表的是“根据/example?a=b&c=d的特定语义处理有效负载”。
获取以路径/查询参数形式检索数据传递参数的方法。
在这里重新思考也许会有帮助。我们使用GET检索资源的当前表示形式。我们不是传递参数,而是传递文档(资源)标识符。
源服务器的实现将解析该标识符这一事实是实现细节。
URI模板是一个紧凑的字符序列,用于通过变量展开描述一系列统一的资源标识符。-- RFC 6570
我想调用一个没有内容类型请求体的帖子-Type: application/json,但是对于params,我是否必须使用application/x form-,还是可以使用path/query params作为最佳实践?
POST /example?a=b&c=d
Content-Type: application/json
{"d":"e","f":"g"}是一个完全正常的HTTP请求。
内容类型只描述有效负载-它与目标URI没有任何关系,以及如何在其中编码信息。
https://stackoverflow.com/questions/71427897
复制相似问题