为什么不总是使用HTTP post for ajax calls?

gdo*_*ica 11 html asp.net jquery post

我知道HTTP get和post方法之间的区别(在这个问题的大细节中已经过期).
我的问题是为什么不总是使用post方法进行AJAX调用,这是安全的.是否有更快的请求?是否有理由更喜欢然后发帖?

对于没有ajax调用有一个原因 - 共享一个链接到相同的URL,但对于AJAX这个论点,这是不好的...

Wil*_*and 10

GET请求更小更快; 并利用缓存,无论是在客户端还是在任何可能正在发挥作用的代理方面.

对于预计不会经常变化的数据,GET请求通常非常明智,因为除非必要,否则它们更有可能不被重新发送.

但是,对于预计会更频繁更改的数据,POST确实是更安全的选项,因为它将始终重新发送到服务器,确保始终遵守更改.

还有一些语义问题可以发挥作用.只有当意图修改服务器上的数据时才应该使用POST请求.


Ume*_*thi 7

我正在阅读雅虎有关加速您的网站的最佳做法,他们已经很好地解释了为什么我们应该更喜欢过帖,这里是帖子摘要供您参考

使用XMLHttpRequest,POST在浏览器中实现为两步过程:首先发送标头,然后发送数据.因此最好使用GET,它只需要一个TCP数据包发送(除非你有很多cookie).IE中的最大URL长度为2K,因此如果发送的数据超过2K,则可能无法使用GET.

一个有趣的副作用是没有实际发布任何数据的POST就像GET一样.根据HTTP规范,GET用于检索信息,因此当您仅请求数据时,使用GET是有意义的(语义上),而不是将数据发送到服务器端存储.

有关详细信息,请参阅页面了解详情

雅虎最佳实践加快速度


Dar*_*rov 5

我的问题是为什么不总是使用post方法进行AJAX调用

因为在RESTful应用程序中,将POST动词用于不修改服务器状态的操作是没有意义的.在RESTful应用程序中,请求的方式并不重要:它是普通的,AJAX还是机器人.

GET请求通常也更快,并且由浏览器缓存.