请问第二次请求会覆盖第一次请求吗?

发布于 2021-11-27 17:05:50 字数 55 浏览 868 评论 6

比如我在浏览器输入网址回车后 在网页还在加载的时候我又输入了另一个网址请求 那么前一个请求返回的响应去哪了呢?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(6

天涯离梦残月幽梦 2021-12-01 23:17:53

如果第一次请求是更改服务器端状态的(比如对数据的增删改)。就会影响到你第二次的提交返回内容。

感情旳空白 2021-12-01 23:13:17

第一次的就没有返回了

羁拥 2021-12-01 22:43:42

那第一次返回的去哪了呢?

画骨成沙 2021-11-30 16:07:38

发现客户端不再接收信息时,服务器一般都会自动断开的.比如:

http://php.net/manual/zh/function.ignore-user-abort.php

php.ini中ignore_user_abort默认是Off,不忽略用户的中断,也就是客户端断开连接后,脚本将被中止.在PHP尝试发送信息到客户端之前,不会检测到用户是否已中断连接.仅使用echo语句不能确保信息已发送,参见flush()函数.

time curl http://www.example.com/app/info.php

Ctrl+C中断请求(PHP-FPM)最后还是生成了文件info.txt.

因为该请求没有输出,PHP无法检测用户是否已中断连接.

//info.php

<?php

for($i=0;$i<5;$i++) { sleep(1); }

file_put_contents('/tmp/info.txt', $i);

PHP在发送信息给浏览器时,才能检测连接是否已经中断.

比如执行这段代码,在5秒内中断请求,将不会生成文件info.txt:

for($i=0;$i<5;$i++) {

    echo $i;

    ob_flush();

    flush();

    sleep(1);

}

file_put_contents('/tmp/info.txt', $i);

又比如PHP判断用户下载完文件后才给予优惠:

<?php

ignore_user_abort(false); //用户中断,退出脚本

header('Content-Type: application/octet-stream');

header('Content-Disposition: attachment; filename="'.basename($file_path).'"');

echo file_get_contents($file_path); //输出文件

ob_flush();

flush(); //冲刷数据到客户端,发现断开,则退出脚本

discount(); //给予优惠

毁梦 2021-11-30 13:48:40

也就是说,第一次请求完如果抛弃了接受,那么服务端可能认为你断开了,和第二次没有任何关系

偏爱自由 2021-11-28 18:51:55

http是无状态的,服务器只负责响应请求而不校验是否接收到

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文