Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/75.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
Html 发布/重定向/获取_Html_Post Redirect Get - Fatal编程技术网

Html 发布/重定向/获取

Html 发布/重定向/获取,html,post-redirect-get,Html,Post Redirect Get,在生成基于web的数据输入系统时,在决定是否使用post/redirect/get设计时,每页添加额外的服务器请求这一事实是否是一个重要问题?大多数情况下,post只在数据更改时发生。站点上的大部分流量和CPU时间是由查询(GET)而不是更改生成的,因此我认为这些额外的请求不是很重要 请求本身并不是问题,特别是替代方案提供了非常糟糕的用户体验 但是,在使用具有负载平衡和/或数据库复制的站点时,需要注意确保GET after POST将看到已发布的数据 在使用负载平衡和缓存时,有时可以通过将同一用

在生成基于web的数据输入系统时,在决定是否使用post/redirect/get设计时,每页添加额外的服务器请求这一事实是否是一个重要问题?

大多数情况下,post只在数据更改时发生。站点上的大部分流量和CPU时间是由查询(GET)而不是更改生成的,因此我认为这些额外的请求不是很重要

请求本身并不是问题,特别是替代方案提供了非常糟糕的用户体验

但是,在使用具有负载平衡和/或数据库复制的站点时,需要注意确保GET after POST将看到已发布的数据

在使用负载平衡和缓存时,有时可以通过将同一用户指向同一台机器的“粘性会话”来解决这一问题,因此存储在该机器上的直写缓存中的数据将是最新的


在使用数据库复制时,POST后获取请求可能需要直接从“主”数据库读取,而不是像往常一样从本地“辅助”数据库读取。

如果我理解您的问题(我不完全确定我是否理解),那么在POST后进行重定向肯定是一种很好的设计,即使你给他们看的是同一页的更新信息


通过重定向,您正在断开正在查看的页面和导致更改的帖子之间的连接。用户可以对页面进行书签和/或刷新,而无需弹出询问“是否要重新发送数据?”

我认为这提供的可用性超过了小的性能影响。

通过执行一些性能基准测试,您将能够看到在您的特定情况下这是否会成为一个问题。有关更多信息,请参阅。

另一个选项是使用数据库镜像而不是复制,使用memcached进行缓存。那么,用户被重定向到哪个前端就不重要了。感谢您考虑更多的事情!我不知道你使用的是什么语言/框架/服务器,但网上有无数可能使用的语言的例子。只需在POST/REDIRECT/GET上搜索即可。我看了所有这些文章,但仍然无法理解。我在这里理解的是:在abc.php中,然后在xyz.php中,我应该使用$x=$\u POST['']收集数据;然后重定向到abc.php&使用$x=$\u GET['';再次收集数据?这很令人困惑,不。POST/REDIRECT/GET(这些是HTTP命令,不是PHP全局变量)是为了避免有人填写表单、提交表单(发布表单)、登录到“谢谢”页面的问题页面,然后在“谢谢”的同时点击刷新页浏览器会问“你想重新提交你的数据吗”(或者别的什么),而大多数Bozo不会阅读/理解这些内容,只需单击“是”,因为他们总是这样做。因此,数据会再次发送到站点,这可能不是您希望发生的事情。重定向会使他们处于“安全”页面上,即不重新提交数据。是的,我知道发生了什么错误。长期以来,我一直面临着这些问题。我读过成千上万篇用图表解释的文章。但没有人给出一个有效的例子。我有一个php页面,它是xyz.php,当用户提交表单时,该页面收集数据并输入数据库。但是当用户刷新页面时,他会收到重新提交数据的消息。那么,我是否应该创建另一个类似abc.php的php页面并在那里收集数据&然后使用header(“Location:xyz.php”);&然后在xyz.php中使用$_GET和?这里有3个页面要看:2个关于这个主题的对话(都是4年多的历史和例子)和a(点击率超过7300万)。我做完了。