断点续传实现原理 多线程下载的原理

断点续传实现原理
可以用多线程传输实现
断点续传:
所谓的断点续传就是指:文件在传输过程式中被中断后,在重新传输时,可以从上次的断点处开始传输,这样就可节省时间。
实现关键:
在这里有两个关键点
其一是检测本地已经下载的文件长度和断点值;
其二是在服务端调整文件指针到断点处
实现方法:
我们用一个简单的方法来实现断点续传的功能.在传输文件的时候创建一个临时文件用来存放文件的断点位置
在每次发送接受文件时,先检查有没有临时文件,如果有的话就从临时文件中读取断点值,并把文件指针移动到断点位置开始传输,这样便可以做到断点续传了
实现流程:
首次传输其流程如下
1.服务端向客户端传递文件名称和文件长度。
2.跟据文件长度计算文件块数(文件分块传输请参照第二篇文章)。
3.客户端将传输的块数写入临时文件(做为断点值)。
4.若文件传输成功则删除临时文件。
首次传输失败后将按以下流程进行。
1.客户端从临时文件读取断点值并发送给服务端。
2.服务端与客户端将文件指针移至断点处(Java已经为我们提供了这样的一个类,那就是RandomAccessFile)
3.从断点处传输文件。


多线程下载的原理
多线程传输实现原理:
将源文件按长度为分为N块文件,然后开辟N个线程,每个线程传输一块,最后合并所有线程文件。
实现流程:
1.客户端向服务端请求文件信息(名称,长度)
2.客户端跟据文件长度开辟N 个线程连接服务端
3.服务端开辟新的线程与客户端通信并传输文件
4.客户端将每线程数据保存到一个文件
5.合并所有线程文件


如果浏览器传递给WEB服务器的参数内容超过1K,应该使用那种方式发送请求消息? 因为GET方式数据量限制1K,不带有保护数据的情况下使用GET方式访问WEB服务器;数据量大,而且带有需要保护的数据时使用POST方式访问WEB服务器。如果浏览器传送服务器的数据量超过1K,应使用POST方式访问服务器,因为POST方式向服务器传送是数据时,会先把传送的数据打包发送到WEB服务器。
.

HTTP代理
代理客户机的http访问,主要代理浏览器访问网页,它的端口一般为80、8080、3128等。


虚拟主机
虚拟主机(又称虚拟服务器,是一种在单一主机或主机群上,实现多网域服务的方法,可以运行多个网站或服务的技术。虚拟主机之间完全独立,并可由用户自行管理,虚拟并非指不存在,而是指空间是由实体的服务器延伸而来,其硬件系统可以是基于服务器群,或者单个服务器。其技术是互联网服务器采用的节省服务器硬件成本的技术,虚拟主机技术主要应用于HTTP,FTP,EMAIL等多项服务,将一台服务器的某项或者全部服务内容逻辑划分为多个服务单位,对外表现为多个服务器,从而充分利用服务器硬件资源。如果划分是系统级别的,则称为虚拟服务器。


HTTPS
HTTPS(全称:超文本传输安全协议),是以安全为目标的HTTP通道,简单讲是HTTP的安全版。即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。 它是一个URI scheme(抽象标识符体系),句法类同http:体系。用于安全的HTTP数据传输。https:URL表明它使用了HTTP,但HTTPS存在不同于HTTP的默认端口及一个加密/身份验证层(在HTTP与TCP之间)。这个系统的最初研发由网景公司进行,并内置于其浏览器Netscape Navigator中,提供了身份验证与加密通讯方法。现在它被广泛用于万维网上安全敏感的通讯,例如交易支付方面。

你可能感兴趣的:(断点续传实现原理 多线程下载的原理)