我了解到,如果您正在修改数据库,则不应使用GET请求。那么您将如何记录有关网站的分析?
例如,我想记录有人访问页面时的页面浏览量。我将需要更新数据库中的views = views + 1
。尽管使用了GET请求,这还可以吗?还是还有另一种方法?当然,并非每个请求都应该是POST请求。
答案 0 :(得分:2)
23年前的RFC 1945中出现了有关如何使用POST与GET的一般建议:
GET方法意味着检索由Request-URI标识的任何信息(以实体的形式)。
POST旨在允许采用统一的方法来覆盖以下功能:
- 现有资源注释;
- 在公告板上,新闻组,邮件列表或类似的文章组中发布消息;
- 提供数据块,例如提交表格[3]的结果,以进行数据处理;
- 通过附加操作扩展数据库。
这些准则直到今天仍然有效,但是它们涵盖了用户页面请求的主要目的。
增加视图计数器的行为与请求的主要目的有关,该目的是查看页面内容。确实,用户可能没有意识到该数据库正在发生。
(当然,您必须期望当用户浏览浏览器历史记录,填充缓存或蜘蛛抓取您的页面时会收到重复的消息。如果发出POST请求,则不会这样。)
答案 1 :(得分:0)
没关系。
发出POST请求时,实际上是在等待POST参数出现,然后根据从浏览器获取的参数来构建数据库插入查询。 根据GET请求,您实际上实现了自己的业务逻辑,因此用户将永远不会知道发生了什么。
最后,实际上有时候您可以做一些违反规则的事情,规则是好的,但是我们却无法遵循它们,这就是使我们成为人类的原因,如果我们严格遵守所有规则,它将麻烦。