Apache 代理是否必须先完全加载所有内容,然后再将其发送回?

Apache 代理是否必须先完全加载所有内容,然后再将其发送回?,apache,http,iis,proxy,http-proxy,Apache,Http,Iis,Proxy,Http Proxy,我一直在使用代理服务,我想知道它背后的一些细节,关于它的速度和效率。考虑下面的场景: 服务器M上有一个mp3文件,客户想下载该文件,但他不想暴露自己,所以他决定使用代理网站下载。因此,get mp3请求首先发送到代理服务器P,然后代理服务器将为客户端获取该mp3,下面是我关于一些细节的问题: p是否必须先下载整个mp3文件,然后才能将其传递给客户端?如果是这样,文件将下载两次(首先在代理服务器上,然后在客户端机器上),大约需要两倍的时间?代理通常以两种模式运行:HTTP和Connect 连接模式

我一直在使用代理服务,我想知道它背后的一些细节,关于它的速度和效率。考虑下面的场景:

服务器M上有一个mp3文件,客户想下载该文件,但他不想暴露自己,所以他决定使用代理网站下载。因此,get mp3请求首先发送到代理服务器P,然后代理服务器将为客户端获取该mp3,下面是我关于一些细节的问题:


p是否必须先下载整个mp3文件,然后才能将其传递给客户端?如果是这样,文件将下载两次(首先在代理服务器上,然后在客户端机器上),大约需要两倍的时间?

代理通常以两种模式运行:HTTP和Connect

连接模式适用于HTTPS或ftp等黑盒协议。其中大部分数据是无意义的八位字节流。因为它们是加密或非结构化文件

然而,对于HTTP,代理相当智能。他们做的一件事就是缓存东西。与通过代理在浏览器中下载网站时的图像和网页内容类似。此外,对于HTTP下的八位字节流,代理显示连接行为,这意味着它们打开中继套接字,让您下载内容。同时,他们将把它存储在本地,如果它不超过某个大小,文件也将被缓存

这些文件也会被转发、转发,有时也称为重写。这是一个示例配置文件,其中显示了squid配置为转发Youtube视频而不缓存它们

下载和转发不可用的另一个原因是往返时间(RTT)增加了一倍。当您添加另一个降低HTTP会话速度的RTT时,这确实是违反直觉的