当前位置: 首页 > 专利查询>河海大学专利>正文

一种URI标识的CSV片段的HTTP检索方法技术

技术编号:12301682 阅读:68 留言:0更新日期:2015-11-11 11:47
本发明专利技术公开一种URI标识的CSV片段的HTTP检索方法,包括:客户端解析片段URI并获得主资源URI及CSV片段标识符;客户端将CSV片段的选择方式和范围发送给服务端;服务端根据CSV片段的选择方式和范围提取CSV片段;服务端将提取的CSV片段返回给客户端;客户端获取CSV片段并显示或保存。本发明专利技术公开的CSV片段的HTTP检索方法,一方面无需对当前HTTP/1.1协议进行扩充;另一方面,不仅支持RFC 7111国际规范《文本/CSV媒体类型URI片段标识符》,而且与客户端下载完整CSV文件后再提取片段的传统技术方案相比,可大大节省网络带宽、缩短通信延时。

【技术实现步骤摘要】

本专利技术涉及互联网通信
中的网络资源HTTP检索方法,尤其涉及一种URI标识的CSV片段的HTTP检索方法
技术介绍
科学领域和电子政务领域的开放数据运动(opendatamovements)使得万维网(WorldWideWeb或简称Web)上逗号分隔值(comma-separatedvalues,CSV)格式的表列数据(tabulardata)急剧增长,而且CSV文件往往具有巨大的尺寸(总字节数)。这就给需要处理或消费CSV文件中的一部分(aportionof)数据或称片段(fragment)的Web客户端应用带来了很大挑战,因为从服务端检索并下载完整CSV文件后再提取其中片段的传统技术方案需要很大的网络带宽和时间代价。在Web上使用CSV文件的格式及其互联网媒体类型(Internetmediatype)由RFC4180规范(参见:Y.Shafranovich.CommonFormatandMIMETypeforComma-SeparatedValues(CSV)Files.IETFRFC4180,October2005.http://tools.ietf.org/html/rfc4180.)所定义。根据这个规范,一个CSV文件以纯文本形式(常用US-ASCII或UTF-8字符编码)来存储由行(row)和列(column)所组成的表列数据;这种表列数据由任意多条记录(record)(即行)所组成,每条记录用换行符(CRLF)来分隔。在每条记录中,有若干个用逗号分隔的字段(field);每条记录包含的字段数必须相等。另外,一个CSV文件还可以包含(即可选的)一个头行(header)作为该文件的第一行,头行中的字段用来给出该CSV文件中其他数据记录的字段名称。统一资源标识符(UniformResourceIdentifier,URI)是一种用来标识Web资源(包括CSV文件)的简单且可扩展的标准手段。根据URI的RFC3986规范(参见:T.Berners-Lee,R.Fielding,andL.Masinter.UniformResourceIdentifier(URI):GenericSyntax.IETFRFC3986,January2005.http://tools.ietf.org/html/rfc3986.),一个URI可选地可包含一个片段标识符(fragmentidentifier),它以紧跟在主资源标识符(primaryresourceidentifier)后面的“#”来标示,用来标识主资源中的某一个部分(即片段)。一个包含片段标识符的URI语法格式如下:<协议名>://<主机>/<路径>#<片段标识符>其中,“<协议名>://<主机>/<路径>”是主资源标识符。最近发布的RFC7111规范(参见:M.Hausenblas,E.Wilde,J.Tennison.URIFragmentIdentifiersforthetext/csvMediaType.IETFRFC7111,January2014.http://tools.ietf.org/html/rfc7111.)进一步定义了采用URI的CSV片段标识机制。根据RFC7111规范,CSV片段标识符可采用三种选择方式:行(row)、列(col)和单元格(cell)。例如,“http://example.org/data.csv#row=1;400-10000”这个URI采用了行选择方式,其标识了主资源(由“http://example.org/data.csv”所标识)中的一个CSV片段,该片段由主资源CSV文件(data.csv)中的第1行及第400-10000行所组成。具体来说,CSV片段标识符中的行选择方式(\row\selectionsscheme)用来选择主资源CSV文件中的一个特定记录(如“row=2”)或一个连续记录范围(如“row=4-10”)。列选择方式(\col\selectionsscheme)用来选择主资源CSV文件中的一个特定列(如“col=4”)或一个连续列范围(如“col=6-10”)。单元格选择方式(\cell\selectionsscheme)用来选择主资源CSV文件中的一个特定单元格(如“cell=1,3”表示第1行、第3列所在的单元格)或一个单元格范围(如“cell=5,7-10,100”表示从左上单元格“cell=5,7”到右下单元格“cell=10,100”的一个单元格范围)。除了单个的行、列和单元格选择,CSV片段标识符中还可以针对某种选择方式使用多选择(multi-selections),此时需要用“;”来间隔单个的行选择或列选择或单元格选择(如:“row=2;4-10”,“col=4;6-10”,“cell=1,3;5,7-10,100”)。RFC7111规范所定义的CSV片段标识机制使得数据发布者(Web服务器)可以用URI来标识一个(可能是具有巨大尺寸的)CSV文件中的一个片段,同时也使得数据消费者(Web客户端应用)有机会通过现有的HTTP协议(参见:R.Fielding,J.Reschke(Editors).HypertextTransferProtocol(HTTP/1.1):MessageSyntaxandRouting.IETFRFC7230,June2014.https://tools.ietf.org/html/rfc7230.)来直接检索URI标识的CSV片段,然后对获取的CSV片段作进一步处理(如:可视化、数据集成等)。这样,就不需要下载完整的CSV文件,从而降低了网络带宽和时间代价。然而,为了实现以上目标,必须构造出能解析处理URI标识符的CSV片段的客户端(即扩充的HTTP客户端),以及能提取CSV片段后返回请求客户端的服务端(即扩充的HTTPWeb服务器)。不幸的是,目前还没有这方面的相关方法或技术方案实现。因此,为了填补当前技术现状的空白,本专利技术要解决的技术问题是针对用符合RFC7111规范的URI来标识的CSV片段,提供一种HTTP检索CSV片段的方法(包括:HTTP客户端和服务端的相关处理方法与流程,以及客户端与服务端之间的交互方法)。本专利技术的方法与客户端下载完整CSV文件后再提取片段的传统技术方案相比,可大大节省网络带宽、缩短通信延时。同时,本专利技术的方法也无需对当前的HTTP/1.1协议进行扩充改造。...

【技术保护点】
一种URI标识的CSV片段的HTTP检索方法,其特征在于,包括:步骤S1,客户端解析片段URI并获得主资源URI及CSV片段标识符;步骤S2,客户端将CSV片段的选择方式和范围发送给服务端;步骤S3,服务端根据CSV片段的选择方式和范围提取CSV片段;步骤S4,服务端将提取的CSV片段返回给客户端;步骤S5,客户端获取CSV片段并显示或保存。

【技术特征摘要】
1.一种URI标识的CSV片段的HTTP检索方法,其特征在于,包括:
步骤S1,客户端解析片段URI并获得主资源URI及CSV片段标识符;
步骤S2,客户端将CSV片段的选择方式和范围发送给服务端;
步骤S3,服务端根据CSV片段的选择方式和范围提取CSV片段;
步骤S4,服务端将提取的CSV片段返回给客户端;
步骤S5,客户端获取CSV片段并显示或保存。
2.如权利要求1所述的方法,其特征在于,所述步骤S1进一步包括:
步骤S1-1,以片段URI中的“#”为分割点获取主资源URI和CSV片段标识符;
步骤S1-2,判断主资源URI是否符合RFC-3986语法,若否,则报错并终止;
步骤S1-3,判断CSV片段标识符是否符合RFC-7111语法,若否,则报错并终止;
步骤S1-4,以CSV片段标识符中的“=”为分割点获取CSV片段的选择方式和范围。
3.如权利要求1所述的方法,其特征在于,所述步骤S3进一步包括:
服务端从客户端HTTPPOST请求的消息体中读取CSV片段的选择方式和范围的参数
值;
若为“行”选择方式,则调用行提取算法获取CSV片段;
若为“列”选择方式,则调用列提取算法获取CSV片段;
若为“单元格”选择方式,则调用单元格提取算法获取CSV片段。
4.如权利要求3所述的方法,其特征在于,所述行提取算法的处理步骤,进一步
包括:
(1)初始化变量fragment为空;
(2)以CSV片段的范围中的“;”为分割点获取若干个行选择范围,并获取每个行
选择范围的起始行和结束行参数;
(3)依次针对每个行选择范围执行如下操作:

【专利技术属性】
技术研发人员:许卓明王骏华张进
申请(专利权)人:河海大学
类型:发明
国别省市:江苏;32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1