您好我正在尝试用C#编写网络服务器
服务器将根据我定义的一些模板动态创建网站。
我遇到的问题是,只有输入密码才能访问该网页
所以我决定让浏览器打开一个保持连接的状态,通过它传递每个请求
然后我可以控制登录的客户端而不是登录客户端。现在的问题是Firefox和谷歌Chrome,当涉及到在网站上请求图像时,他们只是从同一个ip打开另一个连接但是另一个端口。
我的网络服务器认为它是另一个客户端并发送登录http页面而不是请求的图像。
因此,每次网站加载时,实际上只会发送1-4张图像。
现在我的问题:有没有办法强制浏览器不打开并行连接?
或者如果不可能,我该如何处理这个问题?
对于那些喜欢在这里查看代码的人来说,服务器的核心是什么样的,只是为了理解我的问题:
void ThreadStart()
{
while (true)
{
RunClient(listener.AcceptTcpClient());
}
}
void RunClient(TcpClient c)
{
Thread tht = new Thread(new ParameterizedThreadStart(RunIt));
tht.IsBackground = true;
tht.Start(c);//The login page is getting sent...
thtt.Add(tht);
}
先谢谢,Alex
答案 0 :(得分:3)
验证HTTP连接而不是单个请求是错误的,错误的,错误的。即使您可以使浏览器重用单个连接(您不能,因为这不是HTTP的工作原理),您也无法指望代理或透明Web缓存尊重这一点。
这是(某些)发明了什么cookie。使用它们或URL中内置的某种会话标识符。