假设我有一大堆慢服务器。就像我想要的那么多,所以原则上我可以提供巨大的带宽总量。但是,每当用户想要下载文件时,如果我只选择我的一台服务器作为下载源,则下载需要很长时间。
所以我想知道是否存在使浏览器同时从多个来源下载的解决方案。请注意,每个源都可以是标准http服务器上的标准文件。如果这样的解决方案实际存在,那就太棒了,因为我可以给客户端一小部分服务器列表,客户端可以根据需要同时从多个服务器下载。有可能做这样的事吗?
我对任何不需要用户特定权限的解决方案持开放态度(即没有扩展或插件来安装),这是尽可能跨浏览器的。我对下载限制非常小也不满意。 Javascript绝对是一个选择。
我认为我可以使用javascript以块的形式下载文件,然后将它们合并到blob中并让用户下载blob。但是,这意味着我的文件可以像blob一样大,即在Chrome上为500 MB,在其他几个浏览器上稍微多一些。所以还不够。还有其他解决方案吗?我可以使用js库吗?
答案 0 :(得分:0)
使用Network Address Translation。
这是一种可以在路由器上设置的功能,允许多个服务器都注册到同一个IP地址 - 实际上,路由器通过一个地址连接到公共地址空间,并且所有服务器都连接到它。然后,路由器可以将各个请求转发到任何没有更好做的服务器(在路由器中跟踪),然后转发回请求计算机。
如果您发现路由器的内容过多,您可以构建另一个这样的设置,并将其放在不同的物理位置,注册到同一个域名。然后,您的客户将连接到更近的路由器。要在一个建筑物中快速完成此操作,只需将一个路由器连接到您所在地区的每个主要ISP。
对于大文件,HTTP支持chunked transfer,允许以多个较小的块下载文件或网页。多个服务器可能会自愿发送不同的块,允许您对大页面下载进行并列化。