繁体   English   中英

如何检测 http 请求是否来自同一客户端?

[英]How can I detect if http request come from same client?

我正在制作 http/1.1 服务器以更好地了解网络服务器的工作原理。

我看到 http/1.1 版本支持“keep-alive”作为网络改进的默认设置,所以我试图弄清楚如何实现它......

例如,如果客户端访问一个页面,并发送这两个请求(第一次用于 index.html,另一个用于 favicon),我的服务器每个请求都会创建两个套接字,无论来自哪个客户端。

select(...);
FD_ISSET(fd, &read_set);
if (fd == server_socket)
{
    // here, i want to add code
    // if request come from same client and socket is still alive, 
    // I want to reuse it without creating new socket again.
    ...

    // else if request is another new client, then make connection 
    new_socket = accept(fd, (sockaddr *)&new_address, &new_len);
}

如何检测客户端是否是同一个客户端? 谢谢阅读。

我认为你混合了两件事:服务器套接字用于接受传入连接。 new_socket用于从中读取数据。 如果要处理keep-alive则不应关闭new_socket而是使用select等待该套接字上的数据

问题未解决?试试以下方法:

如何检测 http 请求是否来自同一客户端?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2023 STACKOOM.COM