HTTP与FTP上传

问题描述 投票:15回答:7

我正在建立一个大型网站,允许成员上传最大20MB大小的内容(图像,视频)(也许不超过15MB,我们尚未确定最终的上传限制,但是它将在某个地方10-25MB之间)。

我的问题是,在这种情况下,我应该使用HTTP还是FTP上传。请记住,上载的80-90%的大小会较小,例如cca 1-3MB,但有时一些成员还希望上载较大的文件(超过10MB)。

HTTP上载对于如此大的文件是否足够可靠,或者我应该使用FTP?上传档案时,HTTP与FTP之间的速度有明显差异吗?

我问,因为我使用的Zend Framework已经具有用于文件上传的HTTP适配器,如果我选择FTP,则必须为其编写自己的适配器。

谢谢!

php zend-framework upload file-upload
7个回答
15
投票

HTTP无疑减轻了客户的负担。很多地方都有代理或防火墙阻止了所有FTP通信(输入或输出)。


13
投票

HTTP的最大优点是它可以穿越防火墙并且非常容易加密-只需在端口443上使用HTTPS而不是在端口80上使用HTTP。两者都可以通过代理和防火墙。如今,使用POST通过HTTP / HTTPS上传20MB的文件非常容易。

HTTP的问题在于它无法重新启动上载。如果收到80%的文件发送,然后出现故障,则需要从头开始重新启动。这就是为什么供应商越来越多地使用基于闪存,基于Java或基于javascript的上载器和下载器的原因。这些系统可以查看已发送了多少文件,发送了MAC以确保文件已正确到达,然后重新发送丢失的部分。

MAC比您想象的要重要。 TCP校验和仅为32位,因此有四分之一的机会未检测到错误。在当今的互联网上,这可能会发生很多。


7
投票

HTTP上传是否足够可靠这么大的文件

FTP的一个主要优点是能够恢复中止的上传。大多数FTP服务器和客户端都支持此功能,尽管并不总是将其激活。在HTTP上,理论上可以使用特殊的标头,但普通客户端(即浏览器)将不支持它。

另一个优势是批量上传:在FTP中非常简单,而在HTTP中则非常简单。

但是为什么不简单地同时提供这两种选择呢?使用HTTP表示代理或不使用FTP客户端的用户,使用FTP表示必须通过不可靠的连接上传大量文件的人。


4
投票

我不想讽刺,但是文件传输协议在文件传输时必须更可靠:)


0
投票

资源可用性/使用率比可靠性或速度更重要。在上载期间,每次上载都会消耗Web服务器上的资源-线程/内存等。如果内容上传流量对于大文件而言非常重要,则最好仅使用FTP来释放HTTP服务器以更好地响应页面请求。


0
投票

我绝对会和这里的其他人一样选择HTTP方法。原因是您所说的大多数文件从1到3兆字节。

问题在于“休息”,所以:

您是否考虑过允许用户通过电子邮件将更大的文件发送到Deamon脚本,该脚本将获取电子邮件并将电子邮件上载到与发件人关联的帐户?或采用类似Facebook的方式提供Flash上​​传器的解决方案。


-6
投票

FTP将比HTTP消耗更少的带宽,因为后者将需要将二进制内容编码(base64)为纯文本,从而增加了总的传输大小。 (1/3)。

但是,与HTTP占优势的其他因素(例如可用性和安全性相比)相比,带宽消耗不一定是主要关注的问题。>

© www.soinside.com 2019 - 2024. All rights reserved.