【发布时间】:2011-01-21 12:08:03
【问题描述】:
我知道 POST 和 GET 之间的区别,但是如果我使用 POST 而不是 GET,除了不符合 W3C 标准之外还有什么不好的吗? 有没有效率低下、不安全或其他什么?
【问题讨论】:
-
如果你知道其中的区别,你就不需要问了 :-)
我知道 POST 和 GET 之间的区别,但是如果我使用 POST 而不是 GET,除了不符合 W3C 标准之外还有什么不好的吗? 有没有效率低下、不安全或其他什么?
【问题讨论】:
查看 deceze 的答案:
POST requests can't be bookmarked.
在我完成的所有采访中,我完成的所有教学中,这是最好的起点。还有很多,但从这里开始。
忽略任何关于安全的言论。优秀的黑客可以轻松地将 POST 更改为 GET。
如果您走到这一步,请知道 POST 会更改数据(添加会员资格或从信用卡中扣款),而 GET 只会获取数据(搜索红色衬衫)。浏览器的制造商使他们的浏览器对 POST 与 GET 的结果表现不同。 POST 的结果具有您可能不想重复的副作用(例如添加另一个会员资格或对信用卡进行双重收费)。
如果您理解 THIS,那么请阅读 POST-Redirect-GET 模式,并很好地理解它。 (然后知道 GET 有 URL 长度限制,在这种情况下您可能需要求助于 POST。)
【讨论】:
切勿对普通的仅查看页面使用 POST 请求。不能为 POST 请求添加书签、发送电子邮件或以其他方式重复使用。他们使用浏览器的后退/前进按钮搞砸了正确的导航。仅在一个独特的操作中使用它们向服务器发送数据,并且(通常)通过重定向让服务器响应。
除此之外,它们并不比 GET 请求更有效或更安全,它们只是用于不同的目的。
【讨论】: