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

Force browsers to close TCP connections on refresh

我正在开发一个嵌入式网络服务器。如果我启用 keep-alive,那么每次我拔下、重新刷新和重新插入服务器时,Chrome/Firefox 刷新按钮不起作用,因为浏览器会尝试重新使用自此之后未建立的连接最后一次服务器启动。

curl 没有这个问题,因为它会在你每次调用它时自动创建一个新连接(即使使用 keep-alive)。

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

Having the browser automatically reset its connections when I click refresh would seem a lot more logical.

我不认为这更符合逻辑。与其通过具有正常行为的 TCP 堆栈(即为 non-existing 连接 RFC 793 #3.4 'Reset generation' 发送 RST)来修复单个服务器,您希望每个可能连接到服务器的客户端都发生变化。

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