【发布时间】:2014-03-08 06:59:49
【问题描述】:
我已经阅读了很多关于 GET 和 POST 之间差异的文章。 StackOverflow 上提供了很多。
重要区别总结如下:
- Post 可以通过 body 发送其信息,而 GET 不应该(但我认为实际上可以做到)
- 某些浏览器会缓存 GET 结果并依赖 GET 请求的幂等行为。
- 对于大多数开发人员来说,使用 GET 比使用 POST 容易得多。
总结这个总结,在 POST 情况下使用 GET 是不好的和危险的。 但是是否真的忽略了简单性,POST 可以用作 GET 请求的替代品,因为它似乎完全涵盖了 GET 要求。
为了澄清我没有发疯!我不会使用 POST 来代替 GET。这个问题只是为了检查我是否正确理解了 GET 和 POST 的区别。
【问题讨论】:
-
获取某物意味着获取/拉动(朝向您)。发布某些东西意味着推(远离你)所以仅从这一点,就应该清楚这些是具有不同语义的不同事物。见w3.org/Protocols/rfc2616/rfc2616-sec9.html
-
@Gordon 你是对的。我的问题是这些动词是否有任何约束逻辑?例如,我想在我的 ajax 请求上使用自定义 TAKE 关键字,并且在服务器端对此类请求执行 GET 操作。如果是这样会怎样?
-
是的,存在受限逻辑。请参阅发布的链接。它们有不同的语义,它们应该遵守,比如 GET 应该避免副作用。每当通过它检索资源时,用户应该能够依赖获得相同的结果。 POST 不是。通过它创建新资源时,响应应该不同,例如返回的资源表示等。
标签: http post get httprequest