http 浏览器主动断开连接 与 php主动断开连接

本文探讨了在HTTP交互中,浏览器主动断开与PHP服务器连接的情况,以及如何让PHP主动断开连接。通过实验发现,PHP脚本是否会因浏览器断开而停止取决于内容输出和缓冲区管理。同时,介绍了通过设置HTTP响应头来控制服务器端的连接断开策略。
摘要由CSDN通过智能技术生成

摘要:事件起因是因为平时在开发中遇到的疑惑。一次是浏览器客户端主动断开了连接后,发现服务器端的php脚本还在执行,以至于不知道怎样让脚本停下来。还有一次是有需求让php脚本主动断开连接,然后后续脚本继续执行(一个耗时任务),所以有了这篇博客。

一、浏览器主动断开连接

  在常用的LAMP组合下,我们认为,浏览器访问一个php脚本,脚本开始执行,脚本输出内容,并结束运行,apache响应http,浏览器收到http响应,显示结果。
  下来考虑下特殊的情况。
  1、浏览器发送http请求,php执行了一个耗时任务(20s)(假设php的set_time_limit设置的是30s),在此期间浏览器无响应,用户点击浏览器X,浏览器主动断开连接,php脚本是否还继续运行。
  假设耗时任务是:计算fib(25),浏览器测试响应需要时间1.15s,每执行一次耗时任务,写文件Log写一次,执行10次耗时任务,在执行第5次的时候,客户端主动断开连接,观察情况。
代码如下:

<?php
for ($i=0; $i < 10; $i++) { 
    fib(25);
    setLog(date('H:i:s'));
}

function fib($n = 3){
    
    if($n == 0){
        return 1;
    }
    if($n == 1){
        return 1;
    }
    return fib($n - 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值