一种uri标识的csv片段的http检索方法_3

文档序号:9326920阅读:来源:国知局
判断结果为:CSV片段标识符符合RFC-7111语法。
[0091]步骤S1-4,以CSV片段标识符中的“=”为分割点获取CSV片段的选择方式和范围。
[0092]CSV片段的选择方式为:行(row)
[0093]CSV片段的范围为:1-30000
[0094]步骤S2,客户端将CSV片段的选择方式和范围发送给服务端,具体如下:
[0095]客户端将如下HTTP POST请求发送给服务端:
[0096]POST/csv/data/Consumer_Complaints.csv HTTP/1.1
[0097]Accept:*/*
[0098]User-Agent: Java/1.7.0_67
[0099]Host: dbws.hhu.edu.cn
[0100]Connect1n:keep-alive
[0101]Content-Type: applicat1n/χ-www-form-urIencoded
[0102]Content-Length:24
[0103]scheme = row&range = 1-30000
[0104]步骤S3,服务端根据CSV片段的选择方式和范围提取CSV片段,具体如下:
[0105]服务端从客户端HTTP POST请求的消息体中读取CSV片段的选择方式(scheme)和范围(range)的参数值,得到CSV片段的选择方式和范围分别为“row”和“ 1-30000”。于是,调用行提取算法获取CSV片段。
[0106]所述行提取算法的处理步骤如下:
[0107](I)初始化变量fragment为空。
[0108](2)以CSV片段的范围中的“;”为分割点获取I个行选择范围“1-30000”,并获取该行选择范围的起始行号“ I ”和结束行号“30000”。
[0109](3)针对行选择范围“ 1-30000”执行如下操作:逐行读取CSV文件直至读取到第I行(起始行);从第I行开始逐行读取CSV文件的数据,并将其添加到fragment中,直到读取完第30000行(结束行)为止。
[0110](4)变量fragment中存储了结果CSV片段。
[0111]步骤S4,服务端将提取的CSV片段返回给客户端,具体如下:
[0112]服务端以如下HTTP 2000K响应返回给客户端:
[0113]HTTP/1.1 2000K
[0114]Date: Thu, 9Apr 2015 07:02:26GMT
[0115]Content-Length:4969767
[0116]Server:Apache-Coyote/l.1
[0117]{CSV片段数据}
[0118]步骤S5,客户端获取CSV片段并显示或保存,具体如下:
[0119]从服务端返回的HTTP 2000K响应的消息体中读取CSV片段数据,并将其进行屏幕显不O
[0120]我们已用Java SE 7.0实现了本发明的以上技术方案,并已在以下特定的网络环境下运行了以上【具体实施方式】,目的是表明本发明技术方案与传统技术方案(即下载完整CSV文件)相比,节省网络带宽和缩短通信延时的实际效果。我们的具体网络环境配置如下:
[0121]服务端:计算机型号:DELLPowerEdge R710 ;主要硬件配置=Intel(R)Xeon(R)CPUE5640, 2.66GHz, 12M Cache !Memory 16GB (8 X 2GB), 1066MHz ;操作系统:Windows Server2008R2Enterprise 64-bit, Service Pack I ;HTTP Web 服务器:Apache Tomcat/7.0.55。
[0122]客户端:主要硬件配置:Intel(R) Core (TM) i5-2430M, 2.4GHz !Memory 4GB ;操作系统:ffindows 7Ultimate edit1n 64-bit。
[0123]网络配置:协议为HTTP/1.1 ;带宽约10Mbps ;下载速度约1.24MB/s。
[0124]在以上网络环境下,客户端完成检索以上具体实施例中CSV片段的网络带宽代价为4.7MB,是下载完整主资源文件的总带宽代价58.3MB的约8%;客户端检索时间片段的耗时为2.58秒,是下载完整CSV文件的耗时47.08秒的约5%。这些表明,本发明的技术方案比下载完整CSV文件的传统技术方案大大节省了网络带宽,缩短了通信延时,而且,本发明的技术方案无需扩充当前的HTTP协议。
[0125]本技术领域技术人员可以理解,本发明中所述的“客户端”与“服务端”是指HTTP/1.1协议(或未来的升级版)的国际标准中所述的“客户端”与“服务端”。根据HTTP/1.1协议,“客户端”是指为发送请求(requests)的目的而与服务端建立连接(connect1ns)的计算机程序,无论该计算机程序以何种方式运行于何种类型的客户端设备;“服务端”是指为响应(respond)客户端请求(requests)的目的而接受连接(connect1ns)或由第三方代理其接受连接的计算机程序,无论该计算机程序以何种方式运行于何种类型的服务端设备。
[0126]以上所述仅是本发明的部分实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
【主权项】
1.一种URI标识的CSV片段的HTTP检索方法,其特征在于,包括: 步骤SI,客户端解析片段URI并获得主资源URI及CSV片段标识符; 步骤S2,客户端将CSV片段的选择方式和范围发送给服务端; 步骤S3,服务端根据CSV片段的选择方式和范围提取CSV片段; 步骤S4,服务端将提取的CSV片段返回给客户端; 步骤S5,客户端获取CSV片段并显示或保存。2.如权利要求1所述的方法,其特征在于,所述步骤SI进一步包括: 步骤Sl-1,以片段URI中的“#”为分割点获取主资源URI和CSV片段标识符; 步骤S1-2,判断主资源URI是否符合RFC-3986语法,若否,则报错并终止; 步骤S1-3,判断CSV片段标识符是否符合RFC-7111语法,若否,则报错并终止; 步骤S1-4,以CSV片段标识符中的“=”为分割点获取CSV片段的选择方式和范围。3.如权利要求1所述的方法,其特征在于,所述步骤S3进一步包括: 服务端从客户端HTTP POST请求的消息体中读取CSV片段的选择方式和范围的参数值; 若为“行”选择方式,则调用行提取算法获取CSV片段; 若为“列”选择方式,则调用列提取算法获取CSV片段; 若为“单元格”选择方式,则调用单元格提取算法获取CSV片段。4.如权利要求3所述的方法,其特征在于,所述行提取算法的处理步骤,进一步包括: (1)初始化变量fragment为空; (2)以CSV片段的范围中的“;”为分割点获取若干个行选择范围,并获取每个行选择范围的起始行和结束行参数; (3)依次针对每个行选择范围执行如下操作: 从第一行开始逐行读取CSV文件直至读取到行选择范围的起始行; 从该起始行开始逐行读取CSV文件的数据,将其添加到变量fragment中,直到读取完行选择范围的结束行为止; (4)变量fragment中存储了结果CSV片段。5.如权利要求3所述的方法,其特征在于,所述列提取算法的处理步骤,进一步包括: (1)初始化变量fragment为空; (2)以CSV片段的范围中的“;”为分割点获取若干个列选择范围,并获取每个列选择范围的起始列和结束列参数; (3)从第一行开始逐行读取CSV文件中的数据,从中依次截取各个列选择范围的起始列和结束列之间的数据,将其添加到变量fragment中,直到读取完CSV文件为止; (4)变量fragment中存储了结果CSV片段。6.如权利要求3所述的方法,其特征在于,所述单元格提取算法的处理步骤,进一步包括: (1)初始化变量fragment为空; (2)以CSV片段的范围中的“;”为分割点获取若干个单元格选择范围,并获取每个单元格选择范围的起始单元格〈行,列〉和结束单元格〈行,列〉参数; (3)依次针对每个单元格选择范围执行如下操作: 从第一行开始逐行读取CSV文件直到读取到起始单元格的行; 从起始单元格的行开始截取起始单元格的列和结束单元格的列之间的数据,将其添加到变量fragment中,依次逐行读取CSV文件并针对当前行以同样方式截取数据、添加到变量fragment中,直到读取并处理完结束单元格的行为止; (4)变量fragment中存储了结果CSV片段。
【专利摘要】本发明公开一种URI标识的CSV片段的HTTP检索方法,包括:客户端解析片段URI并获得主资源URI及CSV片段标识符;客户端将CSV片段的选择方式和范围发送给服务端;服务端根据CSV片段的选择方式和范围提取CSV片段;服务端将提取的CSV片段返回给客户端;客户端获取CSV片段并显示或保存。本发明公开的CSV片段的HTTP检索方法,一方面无需对当前HTTP/1.1协议进行扩充;另一方面,不仅支持RFC?7111国际规范《文本/CSV媒体类型URI片段标识符》,而且与客户端下载完整CSV文件后再提取片段的传统技术方案相比,可大大节省网络带宽、缩短通信延时。
【IPC分类】G06F17/30
【公开号】CN105045834
【申请号】CN201510374311
【发明人】许卓明, 王骏华, 张进
【申请人】河海大学
【公开日】2015年11月11日
【申请日】2015年6月26日
当前第3页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1