[发明专利]一种基于RFC1867规范的HTTP协议的文件上传方法有效
申请号: | 200810119142.4 | 申请日: | 2008-08-28 |
公开(公告)号: | CN101662484A | 公开(公告)日: | 2010-03-03 |
发明(设计)人: | 王劲林;白鹤;苏孝强 | 申请(专利权)人: | 中国科学院声学研究所 |
主分类号: | H04L29/08 | 分类号: | H04L29/08 |
代理公司: | 北京法思腾知识产权代理有限公司 | 代理人: | 杨小蓉 |
地址: | 100190北京市海淀区*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 rfc1867 规范 http 协议 文件 上传 方法 | ||
技术领域
本发明涉及互联网HTTP领域,特别涉及一种基于RFC1867规范的HTTP协议 的文件上传方法。
背景技术
文件上传是互联网的一项基本应用,现有上传技术按照架构可以分为两类:C/S 模式和B/S模式。C/S模式上传技术,需要在客户端和服务器端安装专门软件,功能 强大,但操作复杂、移植不便。常见的有FTP以及版本管理软件。HTTP是一种基 于请求/响应(B/S)模式的协议,一个客户机与服务器建立连接后,发送一个请求给 服务器,请求包括:请求的方法、URI(Uniform Resource Identifier)、协议版本号。 随后还有MIME(Multipurpose InternetMail Extension protocol)信息:包括请求修饰 符、客户机信息和可能的内容。服务器接到请求后,给予相应的响应信息,其格式 为一个状态行,包括信息的协议版本号、一个成功或错误的代码,后边是MIME信 息包括服务器信息、实体信息和可能的内容。而基于FORM表单的文件上传,文件 的信息和内容正是封装在MIME信息内发送到服务器端的。B/S模式上传技术包括 了三类机制:RFC1867、PUT和WebDav。遵循RFC1867规范的上传方法因为定制 部署方便的优势,现今获得广泛应用,主流的浏览器、Web服务器和服务器端语言 都对此规范有很好的支持,它在用户端的基本形式是浏览器中的Form表单,图1为 RFC1867协议流程,处理步骤如下:
1、用户在浏览器端填写特定类型(multipart/form-data)的Form表单,并提交;
2、服务器监听HTTP服务端口(一般80),接收表单混合数据;
3、Web服务器按照RFC1867规范解析表单,使用服务器端程序(PHP、JSP、 ASP)的接口变量获得解析后的内容进行处理;
4、返回给用户执行结果。
RFC1867上传方法通用性强,服务器端不需要提供Web外其它服务,但是其可 控性差,不会即时解析上传过程的进度信息,无法获得即时状态;而且表单上传会 受到Web服务器对每个进程分配内存大小的限制,使得上传的文件存在连接时间和 文件大小方面的限制,对大文件支持不好,这就导致了封装RFC1867协议的第三方 组件大量出现:
1、JAVA实现的组件
常用的有Commons-fileupload和smartupload:前者的缺点是把上传数据流全部 写入内存,导致内存占用过多,并在上传大文件时会受到web服务器限制;后者是 Jakarta一个项目中的组件,没有进度控制,用户体验不好。目前的上传组件支持进 度显示,基于JAVA实现的接收文件处理服务需要经过虚拟机层的编译,效率不高。 另外存在Java实现的Applet小程序,可以嵌入网页,绕开RFC1867实现上传,其 本质是一个小客户端,并且需要安装额外的JVM插件。
2、ASP实现的组件
常用的有SlickUpload、SAFileUp,其性能优越,但是需要付费,源码没有公开, 就不能根据具体需求适应更改更新,而且使用ASP语言只能适用于Windows IIS服 务器。
3、Activex上传组件
使用ASP调用组件,可以完成较丰富的上传功能,但是因为安全性因素,Activex 控件在用户端会被浏览器控制选项禁用。
发明内容
本发明的目的在于,为了克服现有技术当中Web服务器对文件长度和传输时间 限制、上传组件可控性差、不支持上传进度、可扩展性差、移植部署不便的缺点, 提供一种基于RFC1867规范的HTTP协议的文件上传方法,通过将数据上传至非 HTTP指定端口,由自己的数据处理段进行接收和解析,实现了可移植性好的对大文 件支持组件;并且通过异步通信获得实时进度进行显示。
所述文件上传方法是基于UGiA-PHP-UPLOADER组件的系统架构,实现客户端 进度控制,服务器端数据接收、按照RFC1867协议的即时解析和状态日志读取,包 括以下步骤:
(1)浏览器提交的步骤,是指终端用户在浏览器中填写基于RFC1867规范、 属性设置为“multipart/form-data”的表单,然后提交到客户控制端;
(2)客户控制端控制的步骤,是指客户控制端向服务器端上传表单数据并与服 务器端通信,包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国科学院声学研究所,未经中国科学院声学研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200810119142.4/2.html,转载请声明来源钻瓜专利网。