当前位置:首页 > linux > 正文内容

http客户端关闭请求,服务端仍然还会执行。基于tcp的http运行

root5年前 (2021-07-06)linux1519

在实际开发过程中,服务端有部分api是比较消耗时间,例如读取文件。

如果客户端等不及,刷新请求,或者不断刷新请求。

服务器端将会不断打开新的文件,资源消耗很长大。很容易就导致服务宕机


当然还有通过nginx提供静态文件下载的,这种情况,是分块读取文件,并依次返回,

任何一次的tcp的send失败都会报错并处理,可以是中断也可以是重试


为什么在正常web开发中不能想nginx代理静态文件一样,用户端关闭连接就直接停止服务。

其原因是,http过程中,大多数是在request和response是才有tcp通信,中间的操作并没有通信。

用户断开连接服务端并不知道。在request和response期间的任何操作都无法因用户中断。

除非在进行操作的过程中不断监听一下连接是否断开。


扫描二维码推送至手机访问。

版权声明:本文由一叶知秋发布,如需转载请注明出处。

本文链接:https://www.zhiqiu.top/?id=136

分享给朋友:

相关文章

linux 更换apt的源

sudo sed -i 's/archive.ubuntu.com/mirrors.ustc.edu.cn/g' /etc/apt/sources.list将archive.ubunt...

shell获取当前文件路径

curPath=$(readlink -f "$(dirname "$0")") echo $curPath    #或者 curPath=$(dirname $(readli...

Python2 的Popen在docker中执行会挂起主进程

python2.7因业务需求。要把程序放入到docker容器中但是在docker执行的时候程序出现异常缓慢的情况检查函数执行情况发现当第一个线程执行到popen的时候会导致所有线程的挂起p1 = subprocess.P...

git 忽略文件不起作用 .gitignore

git rm -r --cached . git add .   git commit -m "update .gitignore"  git status查看是否是"working di...

centos切勿执行yum -y update

yum update 跟apt-get update 不一样centos的yum update相当于ubuntu的apt upgrade如果想用ubuntu的apt update,centos是yum makecache因为执行yum -y...

linux创建用户和用户组

添加用户和组groupadd testuseradd -r -g test test删除用户和组userdel testgroupdel test给文件添加用户组和用户归属chown -R test:test test_file...