【发布时间】:2010-11-25 11:18:10
【问题描述】:
在创建 ajax 请求时,GET 优于 POST 的优势是什么?我怎么知道在任何给定时间我应该使用哪个?这是出于安全考虑的决定吗?
另外,它们的实际发送方式有什么不同?
【问题讨论】:
在创建 ajax 请求时,GET 优于 POST 的优势是什么?我怎么知道在任何给定时间我应该使用哪个?这是出于安全考虑的决定吗?
另外,它们的实际发送方式有什么不同?
【问题讨论】:
GET 应该用于idempotent 操作,即可以安全地重复多次而不更改任何内容的操作。浏览器会缓存 GET 请求(对于普通和 AJAX 请求)
POST 通常应该用于非幂等操作,比如保存一些东西。尽管您可以根据需要将它们用于其他操作。
GET 的数据通过 URL 查询字符串发送。 POST 的数据是单独发送的。有些浏览器有一个最大的 URL 长度(我认为 Internet Explorer 是 2048 个字符),如果查询字符串变得太长,你会得到一个错误。
【讨论】:
您应该在 AJAX 调用中使用 GET 和 POST 请求,就像在正常调用中使用 GET 和 POST 请求一样。基本经验法则:
请求会修改您模型中的任何内容吗?
【讨论】:
POST 请求是您不希望意外发生的请求。 GET 请求是用户通过 URL 将浏览器指向的请求,您可以接受。
GET 请求可以非常简单地重复,因为它们的数据基于 URL 本身。
您应该像考虑常规表单请求(及其 GET 和 POST)一样考虑 AJAX 请求
【讨论】:
雅虎!邮件团队发现,当使用 XMLHttpRequest 时,POST 在浏览器中实现为一个两步过程:首先发送标头,然后发送数据。所以最好使用 GET,它只需要发送一个 TCP 数据包(除非你有很多 cookie)。 IE 中的最大 URL 长度为 2K,因此如果您发送超过 2K 的数据,您可能无法使用 GET。
【讨论】: