GET请求应该存储到数据库吗?

时间:2019-04-13 23:02:33

标签: php web http-post http-get

我了解到,如果您正在修改数据库,则不应使用GET请求。那么您将如何记录有关网站的分析?

例如,我想记录有人访问页面时的页面浏览量。我将需要更新数据库中的views = views + 1。尽管使用了GET请求,这还可以吗?还是还有另一种方法?当然,并非每个请求都应该是POST请求。

2 个答案:

答案 0 :(得分:2)

23年前的RFC 1945中出现了有关如何使用POST与GET的一般建议:

  

GET方法意味着检索由Request-URI标识的任何信息(以实体的形式)。

  

POST旨在允许采用统一的方法来覆盖以下功能:

     
      
  • 现有资源注释;
  •   
  • 在公告板上,新闻组,邮件列表或类似的文章组中发布消息;
  •   
  • 提供数据块,例如提交表格[3]的结果,以进行数据处理;
  •   
  • 通过附加操作扩展数据库。
  •   

这些准则直到今天仍然有效,但是它们涵盖了用户页面请求的主要目的。

增加视图计数器的行为与请求的主要目的有关,该目的是查看页面内容。确实,用户可能没有意识到该数据库正在发生。

(当然,您必须期望当用户浏览浏览器历史记录,填充缓存或蜘蛛抓取您的页面时会收到重复的消息。如果发出POST请求,则不会这样。)

答案 1 :(得分:0)

没关系。

发出POST请求时,实际上是在等待POST参数出现,然后根据从浏览器获取的参数来构建数据库插入查询。 根据GET请求,您实际上实现了自己的业务逻辑,因此用户将永远不会知道发生了什么。

最后,实际上有时候您可以做一些违反规则的事情,规则是好的,但是我们却无法遵循它们,这就是使我们成为人类的原因,如果我们严格遵守所有规则,它将麻烦。