作者简介:周世杰(1971-),男,四川自贡人,助理工程师,硕士,主要研究方向:中间件技术、OA 技术、电子商务和网络安全.
文章编号:1001-9081(2001)08-0027-02
文件传输协议分析及应用
周世杰,秦志光
(电子科技大学微机所,四川成都610054)
摘 要:分析了各种文件传输协议和传输方式的优缺点,论述了利用HTTP 协议进行文件传输的机制和特点,设计了HTTP 文件传输中的消息格式,分析了HTTP 中文件传输的数据发送和接收过程,提出了利用HTTP 协议进行文件传输的软件设计模型,并给出了具体实现方案。
关键词:HTTP ;协议;文件;文件传输;应用中图分类号:TP311.12 文献标识码:A
1 网络环境下的文件传输协议和方式
在网络环境下,文件传输方式主要有:文件传输协议方式
(FTP )、远程拷贝方式(RCP )、套接字方式(S OCKET )[1~3]。传统方式下,利用FTP 协议进行文件传输最为普遍,这种方式的优点是适用面广、使用简单、不需要用户编制额外的应用软件(一般集成在操作系统或者网络协议中);其缺点是在广域网上传输大文件时可靠性较低、不支持断点续传,因而对大文件和传输精度要求很高的应用不适合。远程拷贝协议是采用大型或中型计算机作文件服务器,将所有文件信息都存放到该服务器上;其他用户作为文件使用者通过网络进行文件传输。RCP 的优点是适合在局域网内进行大文件或者目录的拷贝,但在Internet 上使用时,安全性很难控制[3];利用T CP 或者UDP 提供的套接字直接在服务器和客户机之间进行文件传输的优点是实现过程可以由应用程序开发者直接控制,因而灵活性很高,缺点是编程复杂,可靠性完全依赖于应用程序开发者,这种方式适用于局域网内的消息传递。由此可见,传统的文件传输协议和方式都存在很大的缺点。
随着Web 技术的发展和用户对文件传输可靠性要求的提高,采用传统的方式势必影响文件传输在实际中的应用和推广;同时WWW 技术的广泛应用,也要求新的文件传输协议和方式,使用HTTP 协议进行文件传输就适应了这种需求。
2 HTTP
协议对文件传输的支持
图1 HTTP 协议的请求/响应
HTTP 协议建立在请求/应答模型上[4,5],一个请求的程序(叫作客户)与一个接收程序(叫作服务器)建立连接。HTTP
协议中传输的数据称为实体(Entity ),它可能包含请求和响应资源的特定表示或解释.一个实体由实体首部(Entity -Head )和实体主体(Entity —Body )构成。在请求/响应模型中,客户请求的形式是请求方法、统一资源标示符(URI )和协议版本号,后面紧跟包含请求参数、客户信息,可能还有信息自身的内容等,服务器用一个状态响应(包括它的协议版本号、成功或失
败代码),后面紧跟包含服务器信息、实体信息,可能还有信息的内容等。请求/响应模型的一次完整会话过程如图1所示。
HTTP/1.1及以后的版本的请求型消息(Request Message )中定义了多种请求方法[6],其中GET 、HE AD 、PUT 方法可以用于文件传输。GET 方法用于存取由请求统一资源标示符(Request —URI )指定的任何信息,HE AD 方法除去服务器不会包含在响应中返回任何实体主体之外,功能和GET 方法是一样的,PUT 方法请求将封装的实体放在提供的请求统一资源标示符中,如果请求的URI 指向一个已经存在的资源,则该实体被视为驻留在服务器上的修改版,否则在服务器上创建该资源。GET 和HE AD 方法用于下传文件,PUT 方法用于上传文件。
此外,HTTP 协议的请求首部(Request —Header )中Accept 关键字包含一个范围段(Range ),利用该关键字,客户可以向服务器请求实体中的任何一部分资源;HTTP 协议实体首部C ontent —Length 首部域表示发送给接收方的实体主体(Entity —
Body )的大小(以字节为单位),利用C ontent —Length 客户可以
获得将要传输的文件的总长度。如果结合Accept 中的Range 关键字和实体首部C ontent —Length 首部域,客户就可以实现文件传输中的断点续传。利用巴科斯范式(BNF )可以定义HTTP 协议中文件传输的消息格式。由于服务器方的响应消息由Web 服务器定义,下面只给出客户方请求消息的部分
BNF 定义[7]:
Request M essage =Head M essage |G et M essage Head M essage =″Head ″SP Request -URI SP Other -in formation ;定义Head 请求消息
G et M essage =″G et ″SP Request -URI SP
;定义接收消息
Request -URI
=″HTTP ://″Server -Address ″/″File -Path ″/″File -Name Server -Address =IP address |D omain Name Other -In formation =Version -In formation CR LF
H ost -In formation CR LF Accept -In formation CR LF Range -In formation CR LF CR LF ;定义请求的辅助信息Version -In formation =″HTTP/″HTTP Version Number ;HTTP 协议的版本号
H ost -In formation =″HOST:″Server -Address ;定义服务器信息
Accept -In formation =″ACCEPT:″″3/3″;定义接收信息类型
第21卷第8期2001年8月
计算机应用C om puter Applications V ol.21,N o.8Aug.,2001