【问题标题】:GET vs empty POSTGET 与空 POST
【发布时间】:2011-07-09 03:41:54
【问题描述】:

在我的工作中,我查看了一些 javascript 文件,发现了一些使用 POST 但没有发送任何数据的 AJAX 调用。似乎他们曾经使用过,但是后端已更新,并且不需要数据,并且以前的开发人员将它们保留为 POST(或者他们只是从其他文件中复制并粘贴了 $.ajax 调用,并删除了数据值) .

我将这些空的 POST 请求更改为 GET 请求。我假设使用 GET 而不是空 POST 更有效。我看了看,没有发现任何有用的东西。

那么,在不发送数据的情况下,使用 GET 代替 POST 是否更有效?

【问题讨论】:

标签: html ajax post get


【解决方案1】:

除了GETPOST 少一个字符之外,我怀疑是否存在任何性能差异。两个请求都有确切的标头(方法部分除外)并且没有正文。它们几乎相同。

例如:

GET /someResource.ext HTTP/1.1
Accept: text/plain
Accept-Encoding: gzip
// empty line //

POST /someResource.ext HTTP/1.1
Accept: text/plain
Accept-Encoding: gzip
// empty line //

但是在选择一个而不是另一个时,您应该牢记它们的目的。当您需要从服务器 retrieve 某些东西时应该使用 GET,而当您需要 发送 东西到服务器时应该使用 POST(发送如 give,不像 发送参数)。

【讨论】:

    【解决方案2】:

    我认为 GET 与 POST 与其说是一个效率问题,不如说是一个语义问题。 POST 请求的目的是什么?如果意图以某种方式改变系统的状态,那么我建议将它们保留为 POST。如果目的只是从系统中检索一些数据,那么我会将它们更改为 GET。

    数据参数的问题并没有真正发挥作用,因为 GET 和 POST 请求都可以接受参数。 (获取查询字符串并通过发布数据发布)

    除了理论上的问题,使用 GET 或 POST 也有真正的理由。例如,GET 请求可以被 Web 服务器、代理服务器和客户端缓存,而 POST 请求从不缓存 AFAIK。我确信还有其他差异,但遵循请求的语义性质应该会为您处理好它们。

    【讨论】:

      【解决方案3】:

      与其说是表现的原因,不如说是两个动词的意思不同。 GET 应该不会更改请求的资源,而 POST 可能会这样做。

      【讨论】:

        猜你喜欢
        • 2020-07-07
        • 1970-01-01
        • 1970-01-01
        • 2010-10-17
        • 2010-12-24
        • 1970-01-01
        • 2012-06-02
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多