【问题标题】:when should a web server do accept to create a new client, or reuse the same client?Web 服务器何时应该接受创建新客户端或重用相同的客户端?
【发布时间】:2022-06-29 22:09:53
【问题描述】:

在用于基本静态网站非阻塞事件驱动的网络服务器中,我不明白应该为“新客户端”实现的机制。 当浏览器连接到我的套接字时,我从接受和回答 HTTP 响应中获取 clientfd,但是当重新加载浏览器时,它应该创建一个新的连接并回答,还是应该重用相同的连接并发送新的响应?

我使用 poll 来处理多个 fd,但是当我重新加载页面时,它的连接相同(对我来说这是有道理的),但随后我打开一个新选项卡,它仍然是相同的连接(它只接受一次)。我没有找到任何关于此的文档,而且我没有办法测试多个客户端是否每次都重用同一个。

【问题讨论】:

    标签: c++ c events server nonblocking


    【解决方案1】:

    我希望我理解正确, 但无论如何,我个人所做的是创建一个套接字映射,每个套接字都是一个客户端。 每次套接字断开连接时,它都会从该地图中删除......等等......

    【讨论】:

      【解决方案2】:

      您不能重复使用来自另一个客户端的连接,新连接必须始终作为新连接被接受。编写什么样的服务器应用程序并不重要。

      但是,如果客户端传递了标头 Connection: keep-alive,则在响应完成后您不应关闭连接,而应保持连接打开,以便将来来自相同客户端的请求。

      【讨论】:

        猜你喜欢
        • 2019-02-28
        • 2014-09-04
        • 1970-01-01
        • 1970-01-01
        • 2012-03-02
        • 2022-06-16
        • 2016-10-05
        • 2016-07-06
        相关资源
        最近更新 更多