这三个陈述的含义是什么:
如果使用了get方法,并且刷新页面,则在再次提交请求之前不会提示。
如果页面的响应对于发布的查询始终相同,则使用GET示例数据库搜索
如果与表单处理相关联的服务有副作用(例如,修改数据库或订阅服务),则该方法应为POST。
我理解的第二个:当使用相同的关键字从数据库进行查询时,会生成相同的结果。例如:“如何查找IP地址”将在网站中每次生成相同的结果,直到有新的帖子包含此字符串(如何查找IP地址)。但为什么得到使用我不知道。
答案 0 :(得分:2)
找到这些指南的上下文会有所帮助,但是:
如果有人重新加载了POST
操作产生的页面,他们通常会收到一个确认对话框,例如“你想重新发送提交的数据吗?”,这对于有侧面的操作是一个有用的警告 - 影响,例如在数据库中创建记录。例如,您不希望人们盲目地创建相同订单的多个副本。
如果有人重新加载了GET
操作产生的页面,则会假设在服务器上不存在潜在的不良副作用,将在不进一步确认的情况下刷新。
还有其他考虑因素。您可以创建指向GET
请求的直接链接,但不能创建POST
,并且POST
数据不会存储在浏览器历史记录中(尽管可能存储在插件等其他内容中)或表格填写者。)
答案 1 :(得分:1)
这些陈述似乎就何时使用get vs post提供了指导。基本思想是get用于只读操作,post用于更新操作。
答案 2 :(得分:1)
GET应该是幂等的 - 即无论你重复多少次操作,结果都是一样的。 GET操作本身不会导致服务/数据的更改。例如在堆栈溢出时加载一个线程。多次获取不会影响后端服务。
另一方面,POST可能会导致后端数据/服务发生变化。例如发布新消息以堆栈溢出。多次执行相同的帖子将导致邮件多次发布。答案 3 :(得分:1)
它说如果有数据库的select操作然后执行GET操作,因为它不会更改任何数据或在数据库中修改但是如果你使用Deletion或Insertion这可能会改变GET,这不像Web Crawler也做一些对任何网站都不利的改变。