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

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

root1年前 (2021-07-06)linux272

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

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

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


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

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


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

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

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

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


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

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

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

分享给朋友:

相关文章

socat 做vp跳板 隐藏自己防溯源

socat 是linux 的一个工具,可以做端口映射,做到隐藏自己,深藏功与名ubuntu 安装apt-get install socatcentos 应该类是把  直接 yum install socat先写个自己常用到的代码s...

centos的新主机配置网络

centos的新主机配置网络

背景:公司因项目开发需要购置了两台主机。因为配置网络的大哥又是不在公司,但是又着急使用新主机。(旧的已经卡成狗腿了)急需解决问题,首先电脑刚插入网线又问题,不亮。只有一个网卡亮但是并不是Internet的网卡。其他四个网卡插入均不亮。换个网...

主机后插孔有声音,但是前耳机插孔没有声音

主机后插孔有声音,但是前耳机插孔没有声音

打开控制面板打开硬件和声音打开Realtek 高清晰音频管理器点击齿轮的选项按钮勾选AC97前面板点击确定...

apach 启动失败 可能因为安全策略

apach 启动失败 可能因为安全策略

执行 setenforce 0再次启动systemctl restart httpdOK 搞定...

git 忽略文件不起作用 .gitignore

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

启动脚本将pid输出到文本中

启动脚本如下nohup java -jar testapi.jar --server.port=8080 & echo $! > pid...