采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
最近把大部分课听完了, 请问tcp上传 应该比http协议上传的效率要高, HTTP是一个无状态的协议,客户端和服务端请求长时间无响应会中断请求, 为何课程仍然采用HTTP协议上传做秒传, 难不成百度云盘 pc 端 仍然采用HTTP上传 (web端采用HTTP, 所以他们推荐采用app 和 pc端软件); 最近腾讯直播更极端一点采用udp协议传输,tcp协议验证, 效率更高!! 这是我不明白的地方, 请老师给我讲解一下!!! HTTP协议上传GB级别的文件 尤其让人头疼
同学你好,
(1)http本身是基于tcp之上的一种应用层协议,所以说tcp上传效率要比http高不太准确。http与tcp, 都是要经过三次握手之后才开始传输数据的;http对比tcp做的工作,简单来说它另外定义传输数据的规范,比如会按照规则来解析header,body。
(2)http的确有无状态短链接的特点,不过也有keep-alive的特性,同时在使用过程中也可以升级为websocket这种全双工通讯协议。
(3)秒传的原理是通过文件hash来提前判断文件是否已经上传过,是的话则直接完成传输(往数据库写入文件记录,但是没有发生实际的数据传输), 所以这个和用什么协议没太大关系。
(4)上传大文件,目前都是采用分块上传的方式,把文件切成多份,发起多次传输,可以有效的提高传输效率和降低重传成本。
(5)关于"客户端和服务端请求长时间无响应会中断请求", 这应该是大多数协议都是会发生的现象,主要是看协议的参数设置,比如超过多久对方没有响应则认为链接已断开。异常断开的常见后果就是文件需要重传,所以这时分块又可以发挥作用了。
(6)在这种文件传输场景,http协议不是导致传输效率低的原因,目前各大共有云服务(比如阿里云,AWS的文件传输都是支持基于http协议的)。而对于即时通讯/游戏领域,因为数据交互频繁,推荐用支持长连接的协议则是好的。而即时通讯也有用udp的常用场景,因为udp没有消息ack机制,这方面可以减轻通讯负担。
请问你做115网盘 仍然是http协议上传的么
是的。后来混合了阿里云oss,也是http协议。oss具体api文档也可以参考这里:https://help.aliyun.com/document_detail/31978.html?spm=a2c4g.11186623.6.1473.84d069cb7B17BZ
登录后可查看更多问答,登录/注册
紧随“云时代”技术潮流,分布式云存储系统,做第一代云程序员
1.3k 23
2.0k 13
1.6k 13
1.1k 13
1.2k 13