带有URL查询参数的HTTP POST - 好主意与否?
我正在设计一个API来通过HTTP,我想知道是否使用HTTP POST命令,但只使用URL查询参数而没有请求体,是一个很好的方法。
注意事项:
“良好的网页设计”要求通过POST发送非幂等操作。这是一种非幂等行为。
当URL中存在请求参数时,更容易开发和调试此应用程序。
该API不适合广泛使用。
看起来像没有正文的POST请求会花费更多的工作,例如Content-Length: 0
必须明确添加标题。
在我看来,没有正文的POST与大多数开发人员和HTTP框架的期望有点相反。
通过URL查询而不是请求主体在POST请求上发送参数是否还有任何缺陷或优势?
编辑:正在考虑的原因是操作不是幂等的,并且除了检索之外还有副作用。请参阅HTTP规范:
特别是,已经建立了这样的惯例:GET和HEAD方法不应该具有采取除检索之外的动作的重要性。这些方法应该被认为是“安全的”。这允许用户代理以特殊方式表示其他方法,例如POST,PUT和DELETE,以便使用户意识到正在请求可能不安全的操作。
...
方法也可以具有“幂等”的属性(除了错误或到期问题)N> 0个相同请求的副作用与单个请求相同。方法GET,HEAD,PUT和DELETE共享此属性。此外,方法OPTIONS和TRACE不应该有副作用,因此本质上是幂等的。
蝴蝶刀刀
慕虎7371278