欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種uri標(biāo)識的csv片段的http檢索方法

文檔序號:9326920閱讀:446來源:國知局
一種uri標(biāo)識的csv片段的http檢索方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及互聯(lián)網(wǎng)通信技術(shù)領(lǐng)域中的網(wǎng)絡(luò)資源HTTP檢索方法,尤其涉及一種URI標(biāo)識的CSV片段的HTTP檢索方法。
【背景技術(shù)】
[0002]科學(xué)領(lǐng)域和電子政務(wù)領(lǐng)域的開放數(shù)據(jù)運動(open data movements)使得萬維網(wǎng)(World Wide Web 或簡稱 Web)上逗號分隔值(comma-separated values, CSV)格式的表列數(shù)據(jù)(tabular data)急劇增長,而且CSV文件往往具有巨大的尺寸(總字節(jié)數(shù))。這就給需要處理或消費CSV文件中的一部分(a port1n of)數(shù)據(jù)或稱片段(fragment)的Web客戶端應(yīng)用帶來了很大挑戰(zhàn),因為從服務(wù)端檢索并下載完整CSV文件后再提取其中片段的傳統(tǒng)技術(shù)方案需要很大的網(wǎng)絡(luò)帶寬和時間代價。
[0003]在Web上使用CSV文件的格式及其互聯(lián)網(wǎng)媒體類型(Internet media type)由RFC4180 規(guī)范(參見:Y.Shafranovich.Common Format and MIME Type for Comma-SeparatedValues(CSV)Files.1ETF RFC 4180,October 2005.http://tools, ietf.0rg/html/rfc4180.)所定義。根據(jù)這個規(guī)范,一個CSV文件以純文本形式(常用US-ASCII或UTF-8字符編碼)來存儲由行(row)和列(column)所組成的表列數(shù)據(jù);這種表列數(shù)據(jù)由任意多條記錄(record)(即行)所組成,每條記錄用換行符(CRLF)來分隔。在每條記錄中,有若干個用逗號分隔的字段(field);每條記錄包含的字段數(shù)必須相等。另外,一個CSV文件還可以包含(即可選的)一個頭行(header)作為該文件的第一行,頭行中的字段用來給出該CSV文件中其他數(shù)據(jù)記錄的字段名稱。
[0004]統(tǒng)一資源標(biāo)識符(UniformResource Identifier, URI)是一種用來標(biāo)識Web資源(包括CSV文件)的簡單且可擴展的標(biāo)準(zhǔn)手段。根據(jù)URI的RFC 3986規(guī)范(參 JaL:T.Berners-Lee, R.Fielding, and L.Masinter.Uniform ResourceIdentifier (URI): Generic Syntax.1ETF RFC3986, January 2005.http://tools, ietf.0rg/html/rfc3986.), 一個 URI 可選地可包含一個片段標(biāo)識符(fragment identifier),它以緊跟在主資源標(biāo)識符(primary resource identifier)后面的來標(biāo)示,用來標(biāo)識主資源中的某一個部分(即片段)。一個包含片段標(biāo)識符的URI語法格式如下:
[0005]<協(xié)議名>://<主機>/〈路徑>#〈片段標(biāo)識符>
[0006]其中,“〈協(xié)議名>://〈主機>/〈路徑 >”是主資源標(biāo)識符。
[0007]最近發(fā)布的RFC 7111 規(guī)范(參見:M.Hausenblas, E.Wilde, J.Tennison.URIFragment Identifiers for the text/csv Media Type.1ETF RFC 7111,January 2014.http://tools.1etf.0rg/html/rfc7111.)進一步定義了采用 URI 的 CSV 片段標(biāo)識機制。根據(jù)RFC7111規(guī)范,CSV片段標(biāo)識符可采用三種選擇方式:行(row)、列(col)和單元格(cell) ο 例如,“http://example, org/data.csv#row = I ;400_10000” 這個 URI 米用了行選擇方式,其標(biāo)識了主資源(由“http://example, org/data.csv”所標(biāo)識)中的一個CSV片段,該片段由主資源CSV文件(data, csv)中的第I行及第400-10000行所組成。
[0008]具體來說,CSV片段標(biāo)識符中的行選擇方式(〃row〃select1ns scheme)用來選擇主資源CSV文件中的一個特定記錄(如“row = 2”)或一個連續(xù)記錄范圍(如“row= 4-10”)。列選擇方式(〃col〃select1ns scheme)用來選擇主資源CSV文件中的一個特定列(如“col = 4”)或一個連續(xù)列范圍(如“col = 6-10”)。單元格選擇方式(〃cell〃select1ns scheme)用來選擇主資源CSV文件中的一個特定單元格(如“cell =1,3”表示第I行、第3列所在的單元格)或一個單元格范圍(如“cell = 5,7-10, 100”表示從左上單元格“cell = 5,7”到右下單元格“cell = 10, 100”的一個單元格范圍)。除了單個的行、列和單元格選擇,CSV片段標(biāo)識符中還可以針對某種選擇方式使用多選擇(mult1-select1ns),此時需要用“;”來間隔單個的行選擇或列選擇或單元格選擇(如:“row = 2 ;4-10”,“col = 4 ;6_10”,“cell = I, 3 ;5, 7-10, 100”)。
[0009]RFC 7111規(guī)范所定義的CSV片段標(biāo)識機制使得數(shù)據(jù)發(fā)布者(Web服務(wù)器)可以用URI來標(biāo)識一個(可能是具有巨大尺寸的)CSV文件中的一個片段,同時也使得數(shù)據(jù)消費者(Web客戶端應(yīng)用)有機會通過現(xiàn)有的HTTP協(xié)議(參見:R.Fielding, J.Reschke (Editors).Hypertext Transfer Protocol (HTTP/1.1):Message Syntax and Routing.1ETFRFC7230, June 2014.https://tools.1etf.0rg/html/rfc7230.)來直接檢索 URI 標(biāo)識的CSV片段,然后對獲取的CSV片段作進一步處理(如:可視化、數(shù)據(jù)集成等)。這樣,就不需要下載完整的CSV文件,從而降低了網(wǎng)絡(luò)帶寬和時間代價。然而,為了實現(xiàn)以上目標(biāo),必須構(gòu)造出能解析處理URI標(biāo)識符的CSV片段的客戶端(即擴充的HTTP客戶端),以及能提取CSV片段后返回請求客戶端的服務(wù)端(即擴充的HTTP Web服務(wù)器)。不幸的是,目前還沒有這方面的相關(guān)方法或技術(shù)方案實現(xiàn)。
[0010]因此,為了填補當(dāng)前技術(shù)現(xiàn)狀的空白,本發(fā)明要解決的技術(shù)問題是針對用符合RFC7111規(guī)范的URI來標(biāo)識的CSV片段,提供一種HTTP檢索CSV片段的方法(包括:HTTP客戶端和服務(wù)端的相關(guān)處理方法與流程,以及客戶端與服務(wù)端之間的交互方法)。本發(fā)明的方法與客戶端下載完整CSV文件后再提取片段的傳統(tǒng)技術(shù)方案相比,可大大節(jié)省網(wǎng)絡(luò)帶寬、縮短通信延時。同時,本發(fā)明的方法也無需對當(dāng)前的HTTP/1.1協(xié)議進行擴充改造。

【發(fā)明內(nèi)容】

[0011]本發(fā)明的目的旨在針對用符合RFC 7111國際規(guī)范《文本/CSV媒體類型URI片段標(biāo)識符》的URI來標(biāo)識的CSV片段,提供一種CSV片段的HTTP檢索方法(包括:HTTP客戶端和服務(wù)端的相關(guān)處理方法與流程,以及客戶端與服務(wù)端之間的交互方法)。一方面,本方法無需擴充當(dāng)前的HTTP/1.1協(xié)議;另一方面,本方法由客戶端解析CSV片段的URI并把主資源標(biāo)識符與片段選擇參數(shù)發(fā)送給服務(wù)端,再由服務(wù)端從主資源中提取相應(yīng)的CSV片段后返回給客戶端,這種方法與客戶端下載完整CSV文件后再提取片段的傳統(tǒng)技術(shù)方案相比,大大節(jié)省了網(wǎng)絡(luò)帶寬、縮短了通信延時。
[0012]為了解決上述技術(shù)問題,本發(fā)明公開一種URI標(biāo)識的CSV片段的HTTP檢索方法,包括:步驟SI,客戶端解析片段URI并獲得主資源URI及CSV片段標(biāo)識符;步驟S2,客戶端將CSV片段的選擇方式和范圍發(fā)送給服務(wù)端;步驟S3,服務(wù)端根據(jù)CSV片段的選擇方式和范圍提取CSV片段;步驟S4,服務(wù)端將提取的CSV片段返回給客戶端;步驟S5,客戶端獲取CSV片段并顯示或保存。
[0013]所述步驟SI進一步包括:步驟S1-1,以片段URI中的“#”為分割點獲取主資源URI和CSV片段標(biāo)識符;步驟S1-2,判斷主資源URI是否符合RFC-3986語法,若否,則報錯并終止;步驟S1-3,判斷CSV片段標(biāo)識符是否符合RFC-7111語法,若否,則報錯并終止;步驟S1-4,以CSV片段標(biāo)識符中的“=”為分割點獲取CSV片段的選擇方式和范圍。
[0014]所述步驟S3進一步包括:
[0015]服務(wù)端從客戶端HTTP POST請求的消息體中讀取CSV片段的選擇方式(scheme)和范圍(range)的參數(shù)值;若為“行(row) ”選擇方式,則調(diào)用行提取算法獲取CSV片段;若為“列(col) ”選擇方式,則調(diào)用列提取算法獲取CSV片段;若為“單元格(cell) ”選擇方式,則調(diào)用單元格提取算法獲取CSV片段。
[0016]所述行提取算法的處理步驟如下:
[0017](I)初始化變量fragment為空;
[0018](2)以CSV片段的范圍中的“;”為分割點獲取若干個行選擇范圍,并獲取每個行選擇范圍的起始行和結(jié)束行參數(shù);
[0019](3)依次針對每個行選擇范圍執(zhí)行如下操作:從第一行開始逐行讀取CSV文件直至讀取到行選擇范圍的起始行;從該起始行開始逐行讀取CSV文件的數(shù)據(jù),將其添加到變量fragment中,直到讀取完行選擇范圍的結(jié)束行為止;
[0020](4)變量fragment中存儲了結(jié)果CSV片段。
[0021]所述列提取算法的處理步驟如下:
[0022](I)初始化變量fragment為空;
[0023](2)以CSV片段的范圍中的“;”為分割點獲取若干個列選擇范圍,并獲取每個列選擇范圍的起始列和結(jié)束列參數(shù);
[0
當(dāng)前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
广元市| 资溪县| 岐山县| 阿拉善右旗| 民权县| 太康县| 平罗县| 桑植县| 杭锦后旗| 新河县| 宁津县| 聂荣县| 襄垣县| 庆元县| 师宗县| 黑河市| 浦东新区| 旅游| 澄江县| 新闻| 红河县| 德化县| 那坡县| 左云县| 滦南县| 长子县| 谢通门县| 玉龙| 常宁市| 苏州市| 衡水市| 安徽省| 彰化县| 西昌市| 永修县| 呼图壁县| 荣昌县| 涞源县| 准格尔旗| 临漳县| 黑水县|