代理是否必须先完全加载所有内容才能将它们发回?
Does proxy have to load everything completely first before sending them back?
我一直在使用代理服务,我想知道它背后的一些细节,关于它的速度和效率。考虑以下场景:
服务器M上有一个mp3文件,一个客户端想下载那个文件,但又不想暴露自己,所以决定使用代理网站下载。因此,获取 mp3 请求首先发送到代理服务器 P,然后代理服务器将为客户端获取该 mp3,这是我关于一些细节的问题:
P是不是要先下载整个mp3文件才能传给客户端?如果是这样,文件被下载两次(第一次在代理服务器上,然后在客户端机器上),大约需要两倍的时间?
代理通常以两种模式运行:HTTP 和连接。
连接模式适用于 HTTPS 或 ftp 等黑盒协议。其中大部分数据是无意义的八位字节流。因为它们是加密或非结构化文件。
但是,对于 HTTP,代理非常智能。他们所做的其中一件事是缓存内容。就像您通过 proxy.Moreover 在浏览器中下载网站时的图像和网页内容一样,对于 HTTP 下的八位字节流,代理显示连接行为,这意味着它们打开中继套接字并让您下载内容。同时,他们会把它存储在本地,如果不超过一定的大小,文件也会被缓存。
文件也被转发,或中继,或有时称为重写。此 here 是一个示例配置文件,显示配置为转发 Youtube 视频而不缓存它们的 squid。
无法下载和转发的另一个原因是往返时间 (RTT) 加倍。当您添加另一个会减慢 HTTP 会话的 RTT 时,这确实违反直觉。
我一直在使用代理服务,我想知道它背后的一些细节,关于它的速度和效率。考虑以下场景:
服务器M上有一个mp3文件,一个客户端想下载那个文件,但又不想暴露自己,所以决定使用代理网站下载。因此,获取 mp3 请求首先发送到代理服务器 P,然后代理服务器将为客户端获取该 mp3,这是我关于一些细节的问题:
P是不是要先下载整个mp3文件才能传给客户端?如果是这样,文件被下载两次(第一次在代理服务器上,然后在客户端机器上),大约需要两倍的时间?
代理通常以两种模式运行:HTTP 和连接。
连接模式适用于 HTTPS 或 ftp 等黑盒协议。其中大部分数据是无意义的八位字节流。因为它们是加密或非结构化文件。
但是,对于 HTTP,代理非常智能。他们所做的其中一件事是缓存内容。就像您通过 proxy.Moreover 在浏览器中下载网站时的图像和网页内容一样,对于 HTTP 下的八位字节流,代理显示连接行为,这意味着它们打开中继套接字并让您下载内容。同时,他们会把它存储在本地,如果不超过一定的大小,文件也会被缓存。
文件也被转发,或中继,或有时称为重写。此 here 是一个示例配置文件,显示配置为转发 Youtube 视频而不缓存它们的 squid。
无法下载和转发的另一个原因是往返时间 (RTT) 加倍。当您添加另一个会减慢 HTTP 会话的 RTT 时,这确实违反直觉。