通过代理服务器可以使用http长连接(connection:keepalive)吗?

时间:2022-08-24 03:47:30
客户端:
点击一个链接,浏览器默认使用http1.1,而http1.1默认是connection:keepalive,因此点多个链接的时候,会使用同一个socket

代理服务器:
接收客户端的请求,
1.都新开一个socket连接到服务端,不过这样就没有了用以提高效率的长连接
2.如果客户端使用同一个socket,则代理服务器也用同一个socket到服务端:但是这样有个问题,如果两次请求的服务端是不一样的,用同一个socket应该是会出现问题的,不能正确连接到服务端
服务端:
服务端会根据代理服务器的socket开对应的socket传送数据,我无法控制服务端的设置是否connection:close

我理解:
客户端和代理服务器和服务端,有一个connection是close,则长连接是无法进行的。


我的问题是:上面黑体大字,我如何解决这个问题?

我并不太懂代理服务器和socket,有人要求:在客户端设置connection:close,在服务端可以用php改变http头,但是在客户端只有html或者javascript可以使用,利用ajax可以发送http头,但是没有找到如何用在客户端。
现在转移方向,从相当于代理服务器的http proxy入手……

希望大家尽情发表自己的意见……
分可以加到我所有的可用分

1 个解决方案

#1


是否会有这样一种折中处理, 对于属于同一个主机的服务端的访问使用同一个socket;否则代理服务器则使用不同的socket为客户端服务。猜测的,具体的实现估计要去查看代理服务器的源码了。

#1


是否会有这样一种折中处理, 对于属于同一个主机的服务端的访问使用同一个socket;否则代理服务器则使用不同的socket为客户端服务。猜测的,具体的实现估计要去查看代理服务器的源码了。