Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/234.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 应该将请求存储到数据库吗?_Php_Web_Http Post_Http Get - Fatal编程技术网

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

Php 应该将请求存储到数据库吗?,php,web,http-post,http-get,Php,Web,Http Post,Http Get,我已经读到,如果要修改数据库,就不应该使用GET请求。那么,您将如何记录有关您的网站的分析 例如,我希望在有人访问某个页面时记录页面浏览量。我需要更新数据库中的views=views+1。尽管使用了GET请求,这还可以吗?还是有其他技术?当然,不是每个请求都应该是POST请求。关于如何使用POST与GET的一般建议在23年前就出现了: GET方法意味着检索由请求URI标识的任何信息(以实体的形式) POST的设计允许采用统一的方法涵盖以下功能: 现有资源的注释 向公告栏、新闻组、邮件列表或类

我已经读到,如果要修改数据库,就不应该使用GET请求。那么,您将如何记录有关您的网站的分析


例如,我希望在有人访问某个页面时记录页面浏览量。我需要更新数据库中的
views=views+1
。尽管使用了GET请求,这还可以吗?还是有其他技术?当然,不是每个请求都应该是POST请求。

关于如何使用POST与GET的一般建议在23年前就出现了:

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

POST的设计允许采用统一的方法涵盖以下功能:

  • 现有资源的注释
  • 向公告栏、新闻组、邮件列表或类似文章组发布消息
  • 向数据处理过程提供数据块,例如提交表格[3]的结果
  • 通过追加操作扩展数据库
这些准则至今仍然有效,但它们涵盖了用户页面请求的主要目的

增加查看计数器的行为是请求的主要目的(查看页面内容)附带的。实际上,用户可能不知道该数据库正在发生

(当然,当用户浏览浏览器历史记录、填充缓存或爬行器抓取页面时,您可能会收到重复的内容。如果发出POST请求,则不会出现这种情况。)

没关系

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


最后,实际上有时候你可以做一些事情,违反规则的事情,规则是好的,但是我们不能遵守它们,这就是为什么我们是人,如果我们严格遵守所有规则,那会很麻烦。

通常这不是一个单独的请求,而是在后台完成的。你只需要假设你会从浏览他们的浏览器历史记录的人那里得到重复的计数等等。对于像这样不重要的目的来说,这没什么大不了的。@miken32我的意思是如果用户导航到“/主页”。在后台,即使http请求是GET/home,也可以更新数据库中的视图计数。因为我的印象是,如果你更新数据库,它应该是一个POST请求,但是POST/home没有意义。正如我所说的,视图计数不是请求的重点,它是用户访问页面时附带的。在这种情况下,该方法是不相关的;对于将进行更改的请求,建议不要使用GET方法,这是指查看页面的主要目的。例如,创建帐户、进行购买、编辑文件–这些都是应该在POST中完成的操作。@miken32这回答了我的问题。Thanks@miken32如果你把这个作为答案提交,我会给你打分。