1

这三个语句的含义是什么:

  1. 如果使用 get 方法并且页面被刷新,则在再次提交请求之前不会提示。

  2. 如果已发布查询的页面响应始终相同,则使用 GET 示例数据库搜索

  3. 如果与处理表单相关的服务有副作用(例如,修改数据库或订阅服务),则方法应该是 POST。

我部分理解的第二个:当使用相同的关键字从数据库完成查询时会生成相同的结果。例如:“如何查找 IP 地址”每次在网站中都会生成相同的结果,直到有包含此字符串的新帖子(如何查找 IP 地址)。但是为什么使用 get 我不知道。

4

4 回答 4

2

了解您找到这些指南的上下文会有所帮助,但是:

如果有人重新加载由POST操作产生的页面,他们通常会得到一个确认对话框,例如“您要重新发送提交的数据吗?”,这对于具有副作用的操作是一个有用的警告,例如在一个数据库。例如,您不希望人们盲目地创建同一订单的多个副本。

如果有人重新加载由GET操作产生的页面,它将在没有任何进一步确认的情况下刷新,假设服务器上不会有潜在的不良副作用。

还有其他考虑。您可以创建指向GET请求的直接链接,但不能创建 a POST,并且POST数据不会存储在浏览器历史记录中(尽管可能存储在插件或表单填充器等其他东西中)。

于 2012-09-13T03:51:54.300 回答
1

这些陈述似乎为何时使用 get 与 post 提供了指导。基本思想是get用于只读操作,post用于更新操作。

于 2012-09-13T03:47:31.880 回答
1

GET 应该是幂等的——即无论你重复操作多少次,结果都是一样的。GET 操作本身不会导致服务/数据发生变化。例如,在堆栈溢出时加载线程。多次获取对后端服务没有影响。

另一方面,POST 可能会导致后端数据/服务发生变化。例如发布一条新消息到堆栈溢出。多次发布同一帖子将导致该消息被多次发布。

于 2012-09-13T03:48:54.547 回答
1

它说如果有数据库的选择操作,然后执行 GET 操作,因为它不会更改任何数据或修改数据库中的但如果您使用删除或插入,这可能会随着 GET 改变,这不好,好像 Web Crawler 也做一些更改对任何网站都不利。

于 2012-09-13T03:53:03.293 回答