据我所知,有三种类型:

不要使用GET和POST 不要使用POST而使用GET 你用哪一个都不重要。

我对这三种情况的假设正确吗?如果有,每个案例都有哪些例子?


当前回答

POST可以移动大数据,而GET不能。

但一般来说,这不是关于GET的缺点,而是一种惯例,如果你想让你的网站/web应用程序表现良好。

看看http://www.w3.org/2001/tag/doc/whenToUseGet.html

其他回答

这就涉及到REST的概念以及web是如何被使用的。在软件工程电台上有一个很好的播客,对Get和Post的使用进行了深入的讨论。

Get用于从不需要更新操作的服务器中提取数据。其思想是,您应该能够反复使用相同的GET请求并返回相同的信息。URL在查询字符串中有get信息,因为它意味着能够轻松地发送到其他系统,人们喜欢在哪里找到一些东西的地址。

Post应该被用于(至少在web基于的REST架构中)将信息推送到服务器/告诉服务器执行一个操作。例如:更新此数据,创建此记录。

当您希望URL反映页面的状态时,请使用GET。这对于查看动态生成的页面非常有用,比如这里看到的页面。POST应该在表单中用来提交数据,就像我点击“POST Your Answer”按钮一样。它还生成了一个更干净的URL,因为它没有在路径后生成参数字符串。

使用POST进行破坏性操作,例如创建(我知道这很讽刺)、编辑和删除,因为您不能在浏览器的地址栏中点击POST操作。当允许一个人调用一个动作是安全的时候使用GET。URL是这样的:

http://myblog.org/admin/posts/delete/357

应该带你到一个确认页面,而不是简单地删除项目。这样避免事故要容易得多。

POST也比GET更安全,因为您没有将信息粘贴到URL中。因此,使用GET作为收集密码或其他敏感信息的HTML表单的方法并不是最好的主意。

最后一点注意:POST可以比GET传输更多的信息。“POST”没有传输数据的大小限制,而“GET”限制为2048个字符。

正如其他人回答的那样,get对url大小有限制,文件只能通过post提交。

我想补充的是,一个人可以添加东西到一个数据库的get和执行操作与发布。当脚本接收到post或get命令时,它可以执行作者希望它执行的任何操作。我相信缺乏理解来自于这本书选择的措辞或你的阅读方式。

脚本作者应该使用posts来更改数据库,而只使用get来检索信息。

脚本语言提供了许多访问请求的方法。例如,PHP允许使用$_REQUEST来检索post或get。应该避免使用更具体的$_GET或$_POST。

在web编程中,有更多的解释空间。一个人应该做什么,可以做什么,但哪一个更好往往是有争议的。幸运的是,在这种情况下,没有歧义。您应该使用posts来更改数据,并且应该使用get来检索信息。

一个实际的区别是浏览器和网络服务器对URL中可以存在的字符数量有限制。每个应用程序都不一样,但如果你的表单中有文本区域,它肯定是可以达到的。

get的另一个问题是,它们会被搜索引擎和其他自动系统索引。谷歌曾经有一个产品,它可以在你正在浏览的页面上预取链接,所以如果你点击这些链接,它们会更快地加载。它对那些有delete.php之类链接的网站造成了严重破坏。Id =1 -人们失去了他们的整个网站。