如何检查http(s) 请求连接状态?
How to check http(s) request connection status?
故事: 在 client-server 系统中,我使用长时间连接(从客户端到服务器的 http(s) 请求,超时时间很长)为了使用通知客户端执行某些操作(大部分数据传输是从客户端到服务器,但一些命令发送到客户端以响应此 http(s) 请求)。
问题:如果客户端取消连接,服务器可以理解,但如果客户端的互联网连接丢失(例如,拔掉 LAN 线或丢失 WLAN/GPRS 天线) 客户端和服务器都不理解这一点。连接仍然存在,直到(花费一些时间并且)有人在其中写了一些东西,但为时已晚。
PS: 0) 我用 AKC/NACK
、Keep-alive
、ping-pong
和 heartbeat
键搜索http(s) 请求的字词,找不到它定期检查请求状态的协议。
1) 在 this 中,您可以找到 curl
命令的参数,它设置了发送 props 的时间间隔(我也用线鲨)。但是,如果仍然拔掉电缆,curl
命令和 server
都无法理解连接丢失。
curl -k --keepalive-time 5 https://exampel.com/v1/v/f9a64e73/notification
2) 另外 here 解释了有一个 http header 用于多次使用连接。
在服务器端和 nginx
网络服务器,我们可以使用 so_keepalive=on
作为 listen
输入参数启用 TCP 保持活动探测。在 this link.
中查找更多信息
故事: 在 client-server 系统中,我使用长时间连接(从客户端到服务器的 http(s) 请求,超时时间很长)为了使用通知客户端执行某些操作(大部分数据传输是从客户端到服务器,但一些命令发送到客户端以响应此 http(s) 请求)。
问题:如果客户端取消连接,服务器可以理解,但如果客户端的互联网连接丢失(例如,拔掉 LAN 线或丢失 WLAN/GPRS 天线) 客户端和服务器都不理解这一点。连接仍然存在,直到(花费一些时间并且)有人在其中写了一些东西,但为时已晚。
PS: 0) 我用 AKC/NACK
、Keep-alive
、ping-pong
和 heartbeat
键搜索http(s) 请求的字词,找不到它定期检查请求状态的协议。
1) 在 this 中,您可以找到 curl
命令的参数,它设置了发送 props 的时间间隔(我也用线鲨)。但是,如果仍然拔掉电缆,curl
命令和 server
都无法理解连接丢失。
curl -k --keepalive-time 5 https://exampel.com/v1/v/f9a64e73/notification
2) 另外 here 解释了有一个 http header 用于多次使用连接。
在服务器端和 nginx
网络服务器,我们可以使用 so_keepalive=on
作为 listen
输入参数启用 TCP 保持活动探测。在 this link.