强制浏览器在刷新时关闭TCP连接

问题描述

我正在开发嵌入式Web服务器。如果启用了保持活动状态,则每次拔出,重新刷新和重新连接服务器时,Chrome / Firefox刷新按钮均不起作用,因为浏览器尝试重新使用自上次以来未建立的连接。服务器启动。

Curl不存在此问题,因为Curl每次调用时都会自动创建一个新连接(即使使用keep-alive)。

我知道我可以关闭保持活动状态,或者让服务器发送TCP重置数据包以响应不存在的连接上的数据段。但是这些黑客都有自己的问题。单击刷新时让浏览器自动重置其连接似乎更加合乎逻辑。有办法吗?

解决方法

当我单击刷新时让浏览器自动重置其连接似乎更加合乎逻辑。

我认为这不合逻辑。您不会期望通过可能会连接到服务器的每个客户端进行更改,而不是通过具有适当行为的TCP堆栈来修复单个服务器(即,为不存在的连接RFC 793 #3.4 'Reset generation'发送RST)。

鉴于Chrome和Firefox是开源的,您可以更改其源代码并将其安装在所有受影响的客户端上。但是据我所知,这些浏览器中没有设置可以以您想要的方式更改行为。然后是其他浏览器,您需要将其更改为并将这些更改推广到所有客户端-这只是无法扩展。