我正在设计一个API来通过HTTP,我想知道是否使用HTTP POST命令,但只使用URL查询参数而没有请求体,是一个很好的方法.
注意事项:
Content-Length: 0必须明确添加标头.通过URL查询而不是请求体在POST请求上发送参数是否还有其他缺陷或优势?
编辑:正在考虑的原因是操作不是幂等的,并且除了检索之外还有副作用.请参阅HTTP规范:
特别是,已经建立了这样的惯例:GET和HEAD方法不应该具有采取除检索之外的动作的重要性.这些方法应该被认为是"安全的".这允许用户代理以特殊方式表示其他方法,例如POST,PUT和DELETE,以便使用户意识到正在请求可能不安全的操作.
...
方法也可以具有"幂等"的属性(除了错误或到期问题)N> 0个相同请求的副作用与单个请求相同.方法GET,HEAD,PUT和DELETE共享此属性.此外,方法OPTIONS和TRACE不应该有副作用,因此本质上是幂等的.
我最近才参与PHP/AJAX/jQuery,在我看来,这些技术的一个重要部分就是POST和GET.
首先,POST和之间有什么区别GET?通过实验,我知道GET将返回的变量及其值附加到URL字符串
website.com/directory/index.php?name=YourName&bday=YourBday
Run Code Online (Sandbox Code Playgroud)
但POST不是.
那么,这是唯一的区别还是有特定的规则或惯例使用其中一个?
其次,我也看到POST和GETPHP之外:还AJAX和jQuery.这3个怎么做POST和GET不同?它们是相同的想法,相同的功能,只是采用不同的方式?