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