CN105721224B - 统一资源定位符处理方法、装置和*** - Google Patents
统一资源定位符处理方法、装置和*** Download PDFInfo
- Publication number
- CN105721224B CN105721224B CN201610202239.6A CN201610202239A CN105721224B CN 105721224 B CN105721224 B CN 105721224B CN 201610202239 A CN201610202239 A CN 201610202239A CN 105721224 B CN105721224 B CN 105721224B
- Authority
- CN
- China
- Prior art keywords
- resource
- url
- parameterized template
- identification information
- template
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0803—Configuration setting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/955—Retrieval from the web using information identifiers, e.g. uniform resource locators [URL]
- G06F16/9566—URL specific, e.g. using aliases, detecting broken or misspelled links
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明公开了一种统一资源定位符处理方法、装置和***。其中,该方法包括:接收统一资源定位符URL,其中,URL用于请求获取资源,URL至少携带有资源的资源ID以及参数模板的标识信息,参数模板用于配置资源;解析URL至少得到资源ID以及标识信息;获取标识信息对应的参数模板以及资源ID对应的资源;根据参数模板对资源进行处理,并返回处理后的资源。本发明至少解决了背景技术中所提到的用URL明文携带的方式携带资源的参数所导致的多个问题中的一个,使资源参数的传递更加合理。
Description
技术领域
本发明涉及网络领域,具体而言,涉及一种统一资源定位符处理方法、装置和***。
背景技术
网络应用的架构通常包含应用服务器和客户端两个部分,其中客户端可以是网页也可以是客户端程序(包括移动应用、桌面客户端等等),客户端接收用户输入,经过简单的逻辑处理之后调用应用服务器的接口获取内容,并将这些内容进行编排后展示给用户。当客户端展示的内容比较复杂时,一般会将图片、音视频、文档等尺寸较大的资源存储在一个专门的存储服务器上,存储服务器通常使用HTTP协议同时为多个产品提供服务。
应用使用资源包括上传和下载两个阶段。图1为根据现有技术的方法上传资源的流程图,图2为根据现有技术的方法下载资源的流程图。上传阶段,客户端或应用服务器将资源文件通过上传接口上传到存储服务器,上传成功后会得到一个资源ID,存储服务器上的资源就使用资源ID来标识,资源ID保存在应用服务器的数据库中。下载阶段,客户端从应用服务器中获取资源ID,然后生成访问资源的URL(也可由应用服务器直接生成带资源ID的URL),最后访问URL从存储服务器获取资源的二进制数据。
通常存储服务器除了简单地存储资源数据之外,还支持对资源数据进行处理。在获取资源时,应用服务器和客户端都可以在URL中加入自定义的参数,如图片的格式和尺寸、视频的清晰度等等,以这样的URL访问存储服务器时,存储服务器会对资源的原始数据进行指定的处理,然后返回处理后的数据。在这种情况下,最终构造出来的资源URL包含三个部分:资源ID、应用服务器指定的资源参数和客户端指定的资源参数(后两者可以不存在)。例如客户端需要展示一张图片,应用服务器在URL中指定这张图片的格式、颜色模式、压缩质量,客户端根据自己的屏幕尺寸在URL中指定图片的长度和宽度。如果客户端直接使用这样的URL来访问存储服务器,会存在一些问题。例如,可能会存在如下问题:
1)URL同时包含应用服务器和客户端指定的参数,过于复杂而且长度较长;
2)URL中包含了应用服务器指定的参数,而这些参数有时候不宜直接暴露给用户;
3)如果应用服务器需要改变自己指定的参数列表或参数值,需要更新客户端代码。
发明人发现,上述问题的出现是由于明文中携带资源的参数所导致的。针对上述的问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种统一资源定位符处理方法、装置和***,以至少解决背景技术中所提到的用URL明文携带的方式携带资源的参数所导致的多个问题中的一个,使资源参数的传递更加合理。
根据本发明实施例的一个方面,提供了一种统一资源定位符处理方法,包括:接收统一资源定位符URL,其中,所述URL用于请求获取资源,所述URL至少携带有所述资源的资源ID以及参数模板的标识信息,所述参数模板用于配置所述资源;解析所述URL至少得到所述资源ID以及所述标识信息;获取所述标识信息对应的参数模板以及所述资源ID对应的所述资源;根据所述参数模板对所述资源进行处理,并返回处理后的资源。
进一步地,所述URL还携带有至少一个参数,解析所述URL至少得到所述资源ID以及所述标识信息包括:解析所述URL得到所述标识信息和所述至少一个参数;根据所述参数模板对所述资源进行处理包括:根据所述至少一个参数对所述参数模板进行配置;使用配置过的所述参数模板对所述资源进行处理。
进一步地,所述URL中携带的所述参数模板的标识信息是由应用服务器添加到所述URL中的,所述URL中携带的所述至少一个参数是由客户端添加到所述URL中的。
进一步地,解析所述URL至少得到所述资源ID以及所述标识信息之后,在本地没有存储所述标识信息对应的参数模板的情况下,获取所述标识信息对应的参数模板以及所述资源ID对应的所述资源包括:向存储有所述参数模板的服务器发送消息,其中,所述消息中携带有所述标识信息;接收所述服务器返回的所述标识信息对应的所述参数模板,或者,所述标识信息对应的所述参数模板中的所述资源的一个或多个属性的值。
进一步地,存储有所述参数模板的服务器包括应用服务器。
进一步地,在接收统一资源定位符URL之前,所述方法还包括:接收用于请求分配存储空间的申请;根据所述申请向所述申请的请求方分配存储空间;接收由所述请求方设置的至少一个参数模板。
进一步地,所述方法还包括:接收所述请求方发送的更改请求,其中,所述更改请求中至少携带有参数模板的标识信息;根据所述更改请求对所述更改请求中携带的标识信息对应的参数模板进行更改。
进一步地,所述请求方包括应用服务器。
进一步地,所述方法由存储服务器执行,其中,所述存储服务器用于存储资源。
进一步地,所述参数模板包括以下至少之一:静态模板、支持脚本语言的动态模板。
根据本发明实施例的又一个方面,还提供了一种统一资源定位符处理装置,包括:第一接收单元,用于接收统一资源定位符URL,其中,所述URL用于请求获取资源,所述URL至少携带有所述资源的资源ID以及参数模板的标识信息,所述参数模板用于配置所述资源;解析单元,用于解析所述URL至少得到所述资源ID以及所述标识信息;获取单元,用于获取所述标识信息对应的参数模板以及所述资源ID对应的所述资源;处理单元,用于根据所述参数模板对所述资源进行处理,并返回处理后的资源。
进一步地,所述解析单元用于在所述URL还携带有至少一个参数的情况下,解析所述URL得到所述标识信息和所述至少一个参数;所述处理单元用于根据所述至少一个参数对所述参数模板进行配置,并使用配置过的所述参数模板对所述资源进行处理。
进一步地,所述获取单元用于在本地没有存储所述标识信息对应的参数模板的情况下,向存储有所述参数模板的服务器发送消息,其中,所述消息中携带有所述标识信息;所述获取单元还用于接收所述服务器返回的所述标识信息对应的所述参数模板,或者,所述标识信息对应的所述参数模板中的所述资源的一个或多个属性的值。
进一步地,所述装置还包括:第二接收单元,用于接收用于请求分配存储空间的申请;分配单元,用于根据所述申请向所述申请的请求方分配存储空间;第三接收单元,用于接收由所述请求方设置的至少一个参数模板。
进一步地,所述装置还包括:第四接收单元,用于接收请求方发送的更改请求,其中,所述更改请求中至少携带有参数模板的标识信息;更改单元,用于根据所述更改请求对所述更改请求中携带的标识信息对应的参数模板进行更改。
根据本发明实施例的又一个方面,还提供了一种统一资源定位符处理***,包括:存储服务器,所述存储服务器包括权利要求11至15中任一项所述的统一资源定位符URL处理装置;应用服务器,用于接收来自客户端的资源请求,并向所述客户端发送URL,其中,所述URL用于请求获取所述资源,所述URL至少携带有所述资源的资源ID以及参数模板的标识信息,所述参数模板用于配置所述资源;客户端,用于向所述存储服务器发送至少包括所述资源的资源ID以及所述标识信息的URL。
进一步地,所述客户端还用于在至少包括所述资源的资源ID以及所述标识信息的URL中添加至少一个参数;所述存储服务器用于根据所述至少一个参数对所述参数模板进行配置并使用配置过的所述参数模板对所述资源进行处理。
进一步地,所述应用服务器还用于向所述存储服务器发送用于请求分配存储空间的申请,并在所述存储空间被分配之后,设置并向所述存储服务器发送所述参数模板;所述存储服务器还用于根据所述申请向所述应用服务器分配存储空间,并在分配所述存储空间之后接收由所述应用服务器设置的至少一个参数模板。
通过本发明,客户端访问存储服务器时不使用原始的URL,而是经过参数模板转换后的URL,这样的URL中只包含参数模板名称和客户端参数值,存储服务器接收到这样的URL之后,通过处理将其转换为原始的资源URL,最终返回原始URL指向的资源数据。本发明采用参数模板的方式来传递至少一部分资源的参数,从而至少解决背景技术中所提到的用URL明文携带的方式携带资源的参数所导致的多个问题中的一个,使资源参数的传递更加合理。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本发明的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1为根据现有技术的方法上传资源的流程图;
图2为根据现有技术的方法下载资源的流程图;
图3是根据本发明实施例的一种统一资源定位符处理方法的流程图;
图4是根据本发明实施例的客户端向存储服务器上传资源的方法的流程图;
图5是根据本发明实施例的客户端在存储服务器下载资源的方法的流程图;
图6是根据本发明实施例的一种统一资源定位符处理装置的示意图;以及
图7是根据本发明实施例的一种统一资源定位符处理***的示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、***、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机***中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
本发明以下实施例是以存储服务器、应用服务器、客户端之间传递资源的参数为例进行说明的。但是,本发明实施例并不限于此,任何终端以及服务器之间传递URL时,都可以应用本发明以下实施例中的步骤。在本发明实施例中,涉及到方法的流程图,这些方法的流程图中并没有涉及到执行主体,这意味着存在本发明所要解决的上述问题的服务器、终端、网络架构等等都可以应用本发明以下的实施例。并且,可以根据实际的需要来选择在什么网元设备上来进行部署。
在本发明实施例中,有一种方式是采用短URL的方案,在该方案中,使用短URL替换了原始URL。下面以存储服务器为例进行说明。
例如,可以在存储服务器为每一个资源URL生成一个或多个字符串(即字符串与URL之间为一对一或者多对一的关系),然后将字符串和URL的对应关系保存在数据库中,客户端不直接使用原始的URL,而是使用包含这个字符串的短URL来访问。存储服务器拿到短URL之后,从数据库中检索到字符串对应的长URL,再返回长URL指向的资源。
该方案的优点在于:能够压缩URL长度。例如,以大小写字母和数字生成字符串为例,长度为N的字符串就能够唯一标识62N个URL。对于一般的***来说N取10就足够长期使用。另一个优点是这种方案可以隐藏所有的参数甚至包括用于标识资源的标识信息(例如,资源ID)。
该方案也存在一些缺点,例如:
1)对于每一个资源的每一个参数组合,都需要生成新的字符串,导致数据量大并且不易管理。例如,资源可以指定N个参数,每个参数有M种取值,那么每一个资源就需要MN个短URL。导致这种问题的根本原因在于短URL没有从语义上对原始URL进行标识,只是机械地一一对应。
2)生成字符串时需要保证不重复,对于大量的URL来说可能会耗费较多的时间,从而降低***的性能。
3)删除资源或修改参数名称时,数据库中会有大量已经生成短URL的长URL无效,清理这些URL需要耗费额外的空间(用于保存索引)或时间(用于搜索和清理)。
本发明实施例还提供了另一种URL的处理方法,在本实施例中被称为参数别名处理方法,下面仍然以应用服务器和存储服务器为例对此进行说明。
应用服务器在存储服务器上为每一个特定的参数组合注册一个别名(例如,缩略图thumbnail、头像avatar等),客户端访问时使用的URL中只包含资源ID和别名,由存储服务器负责解析出别名对应的参数组合,然后用资源ID与参数组合重新生成原始URL,并且返回其指向的资源。这种方案优点在于既可以在一定程度上缩短URL长度(别名比其对应的参数组合短)也可以对客户端隐藏敏感参数(无法通过别名推测参数组合)。
该方案也存在一定的缺点:例如,别名只能由应用服务器预先在存储服务器中指定,并且别名与参数组合之间的对应关系是静态的,这样别名对应的参数组合无法随客户端参数的变化而变化,即对于每一种参数值的组合都要设计一个参数别名,这样大大限制了其使用范围,一般只能用于参数较少而且参数只能取少数几个离散值的场景。
根据本发明实施例,还提供了一种统一资源定位符处理方法。这种处理方式与上述两种实施方式可以灵活选择,根据不同的需要来选择不同的处理方式。以下介绍的这种URL处理方法相比于上述两种实施方式实施效果在有些方面更优。并且,下面的实施方式与上述两种实施方式均可以在其他的服务器来进行实施。具体在什么网元中实施以下步骤可以根据网络架构来灵活进行选择。下面结合附图对本实施例中的URL处理方法进行说明。
图3是根据本发明实施例的一种统一资源定位符处理方法的流程图,如图3所示,该方法包括如下步骤:
步骤S302,接收统一资源定位符URL,其中,URL用于请求获取资源,URL至少携带有资源的资源ID以及参数模板的标识信息,参数模板用于配置资源。
步骤S304,解析URL至少得到资源ID以及标识信息。
步骤S306,获取标识信息对应的参数模板以及资源ID对应的资源。
步骤S308,根据参数模板对资源进行处理,并返回处理后的资源。
在上述步骤S302中,参数模板用于配置资源的一个或多个属性,这些属性的值对于资源来说也可以称为是资源的参数,通过属性的配置可以得到预期的资源。通过上述步骤采用参数模板的方式来传递至少一部分资源的参数或属性,从而至少解决背景技术中所提到的用URL明文携带的方式携带资源的参数所导致的多个问题中的一个,使资源参数的传递更加合理。
上述步骤可以应用在存储服务器中,下面以此为例进行说明。例如,客户端向存储服务器发送的URL部分或全部不明文携带应用服务器指定的参数,而是携带有参数模板的标识信息,存储服务器接收到URL后,解析URL得到参数模板的标识信息,查找到标识信息对应的参数模板中的属性,根据属性的值对资源进行处理。在客户端、应用服务器、存储服务器的交互过程中使用该方法,可以解决背景技术中提到的明文携带应用服务器指定的参数导致的问题。使用本发明实施例所提供的统一资源定位符处理方法,URL中不明文携带应用服务器指定的参数,而是携带有参数模板的标识信息,由于客户端是不知道参数模板的具体内容的,因此,这样能够向客户端隐藏某些参数,而且,当应用服务器需要更新参数时,只需要对参数模板进行调整,而不需要更新客户端的代码。另外,由于URL中用来表示参数模板的标识信息的字符串一般比用来表示应用服务器指定的参数的字符串短,因此,使用本发明实施例所提供的统一资源定位符处理方法能够缩短URL的长度。
上述步骤S302至步骤S308可以由存储服务器来执行。存储服务器中存储着图片、音频、视频等资源。当用户想要下载某个资源时,客户端向存储服务器发送统一资源定位符URL,以请求获取资源。URL携带有参数模板的标识信息。参数模板可以用来配置图片格式、图片色彩模式、分辨率等属性。参数模板的标识信息用来指示具体是哪一个模板。
存储服务器根据接收到的URL中携带的模板的标识信息,查找标识信息对应的模板,根据这个模板中的属性的值,对资源进行处理,将处理之后的资源返回客户端。
例如,如表1所示,存储服务器中一共有4个模板,分别为模板M1、模板M2、模板M3、模板M4。客户端向存储服务器发送了一个URL,用于请求获取一个图片。客户端向存储服务器发送的URL包含“template=M2”,“M2”即为URL携带的参数模板的标识信息,说明客户端向存储服务器发送的URL中标识信息对应的参数模板是模板M2。
表1
模板 | 图片格式 |
M1 | JPEG |
M2 | PNG |
M3 | GIF |
M4 | BMP |
由表1可知,模板M2中包含一个参数,为“PNG”,则存储服务器将用户请求的图片处理成PNG格式,然后向客户端返回处理后的图片,客户端下载得到的图片是PNG格式的。
在上述实施例中,客户端不知道模板M2的参数具体是什么,存储服务器根据客户端发送的URL中的模板的标识信息查找标识信息对应的模板,从而得知模板的参数的值,进而根据参数值对客户端请求的资源进行处理,达到了向客户端隐藏某些参数的效果。而且,当需要更新模板中的参数时,客户端代码不需要做任何更改。
客户端向存储服务器请求获取资源时,客户端向存储服务器发送URL,该URL中可以包含客户端提供的参数(客户端参数),也可以不包含客户端提供的参数,当该URL中不包含客户端参数,根据默认参数值来对标识信息对应的参数模板进行配置。当该URL中包含客户端参数,根据客户端参数对标识信息对应的参数模板进行配置。
例如,如表2所示,存储服务器中一共有3个模板,分别为模板bh、模板bg、模板bk。其中,默认的模板为bh。
表2
模板 | 图片格式 | 图片色彩模式 | 分辨率 |
bh | PNG | 灰度模式 | 1920*1080 |
bg | GIF | RGB颜色模式 | 1280*720 |
bk | JPEG | 位图模式 | 1920*1280 |
假如客户端向存储服务器请求获取一个图片,并且客户端向存储服务器发送的URL不包含任何客户端参数,则存储服务器按照默认的模板bh对图片进行处理,即将图片的格式处理成PNG格式,将图片的色彩模式处理成灰度模式,将图片的分辨率处理成1920*1080,并将处理后的图片发送至客户端。
当客户端向存储服务器发送的URL包含客户端参数时,根据客户端参数对标识信息对应的参数模板进行配置的过程包括:(1)根据参数模板的类型确定参数模板的配置引擎;(2)根据默认参数值和客户端提交的URL中包含的参数值确定用于配置参数模板的参数集,即:对于URL中包含的参数,直接取URL中的值,对于URL中没有的参数,取默认参数值;(3)以参数模板的内容和第(2)步得到的参数集为输入调用第(1)步得到的模板配置引擎,得到配置后的资源参数模板。
上述根据客户端参数对标识信息对应的参数模板进行配置的过程可以用一个公式来表示:参数模板+客户端参数=>资源参数。其中,“=>”代表生成过程,资源参数即为配置后的资源参数模板的属性的值。这个生成过程的具体逻辑是由参数模板本身决定的。一般来说,对于不同的参数模板,生成过程的具体逻辑是不同的。下面举例说明:
例如,参数模板内容为“format=png&color=grey&width={w}&height={h}”,类型为Python字符串格式化模板,客户端参数为w=1080&h=1920,此时的生成过程是将{w}替换成1080,{h}替换成1920,配置完成之后的参数模板的属性值为“PNG”“灰度模式”“1920*1080”,根据配置完成之后的参数模板对图片进行处理,处理之后的图片是PNG格式、灰度模式,分辨率为1920*1080。
例如,参数模板内容为“format=png&color=grey&{%if large%}width=1920&height=1080{%else%}width=1280&height=720{%endif%}”,类型为Jinja2模板,此时的生成过程是参数large的值控制着取if-else语句的哪条分支。例如,当客户端发送给存储服务器的URL包含“large=1”时,配置完成之后的参数模板的属性值为“PNG”“灰度模式”“1080*1920”。根据配置完成之后的参数模板对图片进行处理,处理之后的图片是PNG格式、灰度模式,分辨率为1080*1920。
当需要对模板的参数进行更改或者更新(例如,增加参数、减少参数或者修改参数)时,应用服务器向存储服务器发送更改请求,其中,更改请求中至少携带有参数模板的标识信息,存储服务器根据更改请求对更改请求中携带的标识信息对应的参数模板进行更改,而客户端的代码不需要进行任何变化,这使得更改或者更新参数模板十分便利。例如,需要在上述实施例中增加水印参数“watermark=bottom-left”,使用本发明实施例所提供的方法,只需要将存储服务器中的参数模板内容修改为“format=png&color=grey&width={w}&heigh={h}&watermark=bottom-left”即可。
上述实施例中,存储服务器中存储了参数模板。在另一种可选的实施例中,存储服务器也可以不存储任何参数模板,下面对这种情况进行说明。
当存储服务器不存储任何参数模板时,可以将参数模板存储在应用服务器中,并且由应用服务器提供一个解析模板参数的接口。在这种情况下,当存储服务器接收客户端发送的URL之后,存储服务器调用应用服务器的接口解析出URL的参数,再利用这些参数对客户端请求的资源进行处理。使用这种方式,能够使应用服务器对参数模板有完整的控制权。当需要对参数模板进行更新时,只需要对应用服务器中的参数模板进行更新,存储服务器和客户端都不需要进行任何变化,使得更新参数模板十分便利。例如,需要在上述实施例中增加水印参数“watermark=bottom-left”,使用本发明实施例所提供的方法,只需要将应用服务器中的参数模板内容修改为“format=png&color=grey&width={w}&heigh={h}&watermark=bottom-left”即可。
作为一种可选的实施例,URL中携带的参数模板的标识信息是由应用服务器添加到URL中的,URL中携带的至少一个参数是由客户端添加到URL中的。
当客户端想要从存储服务器上下载资源时,客户端向应用服务器发送请求消息,请求消息用于请求资源。应用服务器接收到请求消息之后,向客户端返回携带有参数模板的标识信息的URL,其中,参数模板的标识信息是应用服务器指定和添加的。客户端也可以将客户端参数添加到URL中,当存储服务器接收到携带有客户端参数的URL之后,根据客户端参数对参数模板进行配置。
存储服务器中存储的参数模板可以由应用服务器进行设置,具体过程如下:接收用于请求分配存储空间的申请;根据申请向申请的请求方分配存储空间;接收由请求方设置的至少一个参数模板。
应用服务器向存储服务器发送用于请求分配存储空间的申请,存储服务器接收该申请,根据申请向应用服务器分配存储空间,并将存储空间的信息返回给应用服务器。应用服务器设置一个或者多个参数模板,并向存储服务器发送参数模板。存储服务器接收参数模板,并将参数模板存储于自身的数据库中。
图4是根据本发明实施例的客户端向存储服务器上传资源的方法的流程图。如图4所示,该方法包括如下步骤:
步骤S402,申请存储空间。即,应用服务器向存储服务器申请存储空间。
步骤S404,返回存储空间信息。即,存储服务器接收到应用服务器用于申请存储空间的请求后,存储服务器分配存储空间,并将存储空间的信息返回给应用服务器。
步骤S406,设置参数模板。即,应用服务器在存储服务器上设置参数模板,参数模板具有名称、类型、内容、默认生成参数等属性。存储服务器将参数模板存储于数据库中,用其名称作为索引。
步骤S408,请求上传资源。即,客户端向应用服务器请求上传资源。需要上传的资源可以为图片、视频、音频,等。
步骤S410,返回上传接口信息。即,应用服务器向客户端返回步骤S202中申请的存储空间的上传接口信息。
步骤S412,上传资源数据。即,客户端调用上传接口,将资源数据上传至存储服务器。
步骤S414,返回资源ID。即,存储服务器将客户端上传的资源数据存储至步骤S202中申请的存储空间中,并将资源ID返回给客户端。
步骤S416,发送资源ID。即,客户端向应用服务器发送资源ID。应用服务器将资源ID保存至自身的数据库中。
图5是根据本发明实施例的客户端在存储服务器下载资源的方法的流程图。如图5所示,该方法包括如下步骤:
步骤S502,请求显示页面。即,客户端向应用服务器请求显示页面。
步骤S504,返回携带参数模板的标识信息的资源URL。即,应用服务器向客户端返回资源URL,其中,URL携带了参数模板的标识信息。URL还可以携带存储服务器信息、资源ID。参数模板的标识信息可以是参数模板的名称。客户端接收应用服务器返回的URL之后,客户端可以在URL中添加客户端参数。此外,应用服务器还向客户端返回页面信息。
步骤S506,请求资源数据,其中,请求中包含参数模板的标识信息。即,客户端向存储服务器发送URL以请求资源数据,URL包含存储服务器信息、资源ID、参数模板的标识信息、客户端参数。
步骤S508,返回处理后的资源数据。存储服务器接收客户端发送的URL,解析出URL中的资源ID、参数模板的标识信息、客户端参数,从存储空间中读取资源ID对应的资源数据,利用参数模板的标识信息从数据库中获取参数模板的标识信息对应的参数模板的各个属性,然后根据各个属性的值对资源数据进行处理并返回给客户端,客户端根据获得的页面信息以及获得的资源数据合成页面并显示。
下面以一个详细的实施例说明客户端怎样在存储服务器上传和下载资源。用户通过客户端上传图片,上传完成后在客户端中作为背景图片展示。客户端展示图片时,需要展示尺寸与客户端屏幕的尺寸相等的PNG格式的黑白两色图片(即灰度模式)。
应用服务器和存储服务器使用HTTP接口,客户端为手机APP。
存储服务器的接口如表3所示。
表3
接口名称 | URL |
上传资源接口 | http://<host>/<app_name>/upload |
下载资源原始数据接口 | http://<host>/<app_name>/<resource_id> |
下载经过处理的资源数据接口 | http://<host>/<app_name>/<resource_id>?arg=arg_value |
客户端使用“上传资源接口”上传资源数据,使用“下载经过处理的资源数据接口”下载资源数据。
存储服务器应至少支持表4中的参数的处理。
表4
参数名 | 参数值 | 指定方 |
format | 图片格式 | 应用服务器 |
color | 图片色彩模式 | 应用服务器 |
width | 客户端屏幕宽度 | 客户端APP |
height | 客户端屏幕高度 | 客户端APP |
如果使用现有技术的方法,以客户端的分辨率为1920*1080为例,客户端向存储服务器发送的URL为:
http://<host>/<app_name>/<resource_id>?format=png&color=grey&width=1080&height=1920。
将这个URL称为原始URL,原始URL是比较长的,而且包含了format和color参数,客户端能够通过“format=png”知道图片的格式是PNG格式,通过“color=grey”知道图片的色彩模式是灰度模式,而在有些时候,应用服务器并不想客户端知道这些参数,采用现有技术的方法无法向客户端隐藏某些敏感参数。而且,当需要修改format和color这两个参数的值时,所有的客户端的代码都需要改变,十分麻烦。
使用本发明实施例提供的方法,在客户端向存储服务器上传资源之前,使应用服务器在存储服务器上设定参数模板,模板属性如表5所示。
表5
模板属性 | 模板属性值 |
名称 | bg |
模板类型 | Python字符串格式化模板 |
模板内容 | format=png&color=grey&width={w}&height={h} |
模板参数 | w和h |
默认参数值 | w=720,h=1280 |
表5中的w=720,h=1280是指默认的分辨率参数值,如果客户端不提供客户端参数,则按照默认参数值w=720,h=1280对参数模板进行配置,根据配置完成之后的参数模板对图片进行处理,如果客户端提供客户端参数,则按照客户端提供的客户端参数对参数模板进行配置,根据配置完成之后的参数模板对图片进行处理。
当客户端需要展示背景图片时,每次用户打开客户端时都需要从存储服务器下载该图片并在客户端进行展示。
客户端向应用服务器请求资源URL,应用服务器向客户端返回的URL为:
http://<host>/<app_name>/<resource_id>?template=bg。
客户端接收到该URL之后,在该URL中加入客户端参数,例如,加入客户端参数“1920*1080”,客户端发送给存储服务器的URL为:
http://<host>/<app_name>/<resource_id>?template=bg&w=1080&h=1920。
当存储服务器接收到这个URL之后,根据template参数的值“bg”找到对应的模板类型和模板内容“format=png&color=grey&width={w}&height={h}”,然后将“{w}”替换成1080,将“{h}”替换成1920,得到配置后的模板“format=png&color=grey&width=1080&height=1920”。之后,存储服务器按照配置后的模板中的参数对图片进行处理,处理完成之后,得到了分辨率为1920*1080的PNG格式的黑白两色图片(即灰度图、灰度模式)。向客户端返回处理之后的图片。客户端接收该图片后,即完成了图片的下载,接下来可以在客户端中展示分辨率为1920*1080的PNG格式的黑白两色图片。
使用本发明实施例所提供的方法,客户端向存储服务器发送的URL比原始URL少了19个字符,而且当增加应用服务器指定的参数时,原始URL的长度会增加,而使用本发明实施例所提供的方法发送的URL的长度不变,因此,有效地缩短了URL的长度。尤其是应用服务器指定的参数很多时,原始URL会非常复杂,长度很长,而使用本发明实施例所提供的方法发送的URL的长度与应用服务器指定的参数的数量无关,因此有效地缩短了URL的长度。
作为一种可选的实施例,参数模板包括以下至少之一:静态模板、支持脚本语言的动态模板。
静态模板是内容不会变化的模板,即模板内容是固定的。动态模板的模板内容可以变化,即随着模板参数的变化模板内容发生变化。动态模板有字符串格式化模板、Jinja2模板,等。
本发明实施例还提供了一种统一资源定位符处理装置,统一资源定位符处理装置主要用于执行本发明实施例上述内容所提供的统一资源定位符处理方法,以下对本发明实施例所提供的统一资源定位符处理装置做具体介绍。
图6是根据本发明实施例的一种统一资源定位符处理装置的示意图,如图6所示,该装置主要包括第一接收单元10、解析单元20、获取单元30和处理单元40。
第一接收单元10,用于接收统一资源定位符URL,其中,URL用于请求获取资源,URL至少携带有资源的资源ID以及参数模板的标识信息,参数模板用于配置资源。
解析单元20,用于解析URL至少得到资源ID以及标识信息。
获取单元30,用于获取标识信息对应的参数模板以及资源ID对应的资源。
处理单元40,用于根据参数模板对资源进行处理,并返回处理后的资源。
可选地,解析单元用于在URL还携带有至少一个参数的情况下,解析URL得到标识信息和至少一个参数;处理单元用于根据至少一个参数对参数模板进行配置,并使用配置过的参数模板对资源进行处理。
可选地,获取单元用于在本地没有存储标识信息对应的参数模板的情况下,向存储有参数模板的服务器发送消息,其中,消息中携带有标识信息;获取单元还用于接收服务器返回的标识信息对应的参数模板,或者,标识信息对应的参数模板中的资源的一个或多个属性的值。
可选地,装置还包括:第二接收单元,用于接收用于请求分配存储空间的申请;分配单元,用于根据申请向申请的请求方分配存储空间;第三接收单元,用于接收由请求方设置的至少一个参数模板。
可选地,装置还包括:第四接收单元,用于接收请求方发送的更改请求,其中,更改请求中至少携带有参数模板的标识信息;更改单元,用于根据更改请求对更改请求中携带的标识信息对应的参数模板进行更改。
本发明实施例还提供了一种统一资源定位符处理***,以下对本发明实施例所提供的统一资源定位符处理***做具体介绍。
图7是根据本发明实施例的一种统一资源定位符处理***的示意图。如图7所示,该统一资源定位符处理***包括存储服务器、应用服务器和客户端。
存储服务器包括上述统一资源定位符URL处理装置。
应用服务器用于接收来自客户端的资源请求,并向客户端发送URL,其中,URL用于请求获取资源,URL至少携带有资源的资源ID以及参数模板的标识信息,参数模板用于配置资源。
客户端用于向存储服务器发送至少包括资源的资源ID以及标识信息的URL。
可选地,客户端还用于在至少包括资源的资源ID以及标识信息的URL中添加至少一个参数;存储服务器用于根据至少一个参数对参数模板进行配置并使用配置过的参数模板对资源进行处理。
可选地,应用服务器还用于向存储服务器发送用于请求分配存储空间的申请,并在存储空间被分配之后,设置并向存储服务器发送参数模板;存储服务器还用于根据申请向应用服务器分配存储空间,并在分配存储空间之后接收由应用服务器设置的至少一个参数模板。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本发明所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (15)
1.一种统一资源定位符处理方法,其特征在于,包括:
接收统一资源定位符URL,其中,所述URL用于请求获取资源,所述URL至少携带有所述资源的资源ID以及参数模板的标识信息,所述参数模板用于配置所述资源;
解析所述URL至少得到所述资源ID以及所述标识信息;
获取所述标识信息对应的参数模板以及所述资源ID对应的所述资源;
根据所述参数模板对所述资源进行处理,并返回处理后的资源,
所述URL还携带有至少一个参数,解析所述URL至少得到所述资源ID以及所述标识信息包括:解析所述URL得到所述标识信息和所述至少一个参数;根据所述参数模板对所述资源进行处理包括:根据所述至少一个参数对所述参数模板进行配置;使用配置过的所述参数模板对所述资源进行处理。
2.根据权利要求1所述的方法,其特征在于,所述URL中携带的所述参数模板的标识信息是由应用服务器添加到所述URL中的,所述URL中携带的所述至少一个参数是由客户端添加到所述URL中的。
3.根据权利要求1所述的方法,其特征在于,解析所述URL至少得到所述资源ID以及所述标识信息之后,在本地没有存储所述标识信息对应的参数模板的情况下,获取所述标识信息对应的参数模板以及所述资源ID对应的所述资源包括:
向存储有所述参数模板的服务器发送消息,其中,所述消息中携带有所述标识信息;
接收所述服务器返回的所述标识信息对应的所述参数模板,或者,所述标识信息对应的所述参数模板中的所述资源的一个或多个属性的值。
4.根据权利要求3所述的方法,其特征在于,存储有所述参数模板的服务器包括应用服务器。
5.根据权利要求1所述的方法,其特征在于,在接收统一资源定位符URL之前,所述方法还包括:
接收用于请求分配存储空间的申请;
根据所述申请向所述申请的请求方分配存储空间;
接收由所述请求方设置的至少一个参数模板。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
接收所述请求方发送的更改请求,其中,所述更改请求中至少携带有参数模板的标识信息;
根据所述更改请求对所述更改请求中携带的标识信息对应的参数模板进行更改。
7.根据权利要求5或6所述的方法,其特征在于,所述请求方包括应用服务器。
8.根据权利要求1至6中任一项所述的方法,其特征在于,所述方法由存储服务器执行,其中,所述存储服务器用于存储资源。
9.根据权利要求1至6中任一项所述的方法,其特征在于,所述参数模板包括以下至少之一:静态模板、支持脚本语言的动态模板。
10.一种统一资源定位符处理装置,其特征在于,包括:
第一接收单元,用于接收统一资源定位符URL,其中,所述URL用于请求获取资源,所述URL至少携带有所述资源的资源ID以及参数模板的标识信息,所述参数模板用于配置所述资源;
解析单元,用于解析所述URL至少得到所述资源ID以及所述标识信息;
获取单元,用于获取所述标识信息对应的参数模板以及所述资源ID对应的所述资源;
处理单元,用于根据所述参数模板对所述资源进行处理,并返回处理后的资源,
所述解析单元用于在所述URL还携带有至少一个参数的情况下,解析所述URL得到所述标识信息和所述至少一个参数;所述处理单元用于根据所述至少一个参数对所述参数模板进行配置,并使用配置过的所述参数模板对所述资源进行处理。
11.根据权利要求10所述的装置,其特征在于,
所述获取单元用于在本地没有存储所述标识信息对应的参数模板的情况下,向存储有所述参数模板的服务器发送消息,其中,所述消息中携带有所述标识信息;
所述获取单元还用于接收所述服务器返回的所述标识信息对应的所述参数模板,或者,所述标识信息对应的所述参数模板中的所述资源的一个或多个属性的值。
12.根据权利要求10所述的装置,其特征在于,所述装置还包括:
第二接收单元,用于接收用于请求分配存储空间的申请;
分配单元,用于根据所述申请向所述申请的请求方分配存储空间;
第三接收单元,用于接收由所述请求方设置的至少一个参数模板。
13.根据权利要求10所述的装置,其特征在于,所述装置还包括:
第四接收单元,用于接收请求方发送的更改请求,其中,所述更改请求中至少携带有参数模板的标识信息;
更改单元,用于根据所述更改请求对所述更改请求中携带的标识信息对应的参数模板进行更改。
14.一种统一资源定位符处理***,其特征在于,包括:
存储服务器,所述存储服务器包括权利要求10至13中任一项所述的统一资源定位符URL处理装置;
应用服务器,用于接收来自客户端的资源请求,并向所述客户端发送URL,其中,所述URL用于请求获取所述资源,所述URL至少携带有所述资源的资源ID以及参数模板的标识信息,所述参数模板用于配置所述资源;
客户端,用于向所述存储服务器发送至少包括所述资源的资源ID以及所述标识信息的URL,
所述客户端还用于在至少包括所述资源的资源ID以及所述标识信息的URL中添加至少一个参数;所述存储服务器用于根据所述至少一个参数对所述参数模板进行配置并使用配置过的所述参数模板对所述资源进行处理。
15.根据权利要求14所述的***,其特征在于,
所述应用服务器还用于向所述存储服务器发送用于请求分配存储空间的申请,并在所述存储空间被分配之后,设置并向所述存储服务器发送所述参数模板;
所述存储服务器还用于根据所述申请向所述应用服务器分配存储空间,并在分配所述存储空间之后接收由所述应用服务器设置的至少一个参数模板。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610202239.6A CN105721224B (zh) | 2016-03-31 | 2016-03-31 | 统一资源定位符处理方法、装置和*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610202239.6A CN105721224B (zh) | 2016-03-31 | 2016-03-31 | 统一资源定位符处理方法、装置和*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105721224A CN105721224A (zh) | 2016-06-29 |
CN105721224B true CN105721224B (zh) | 2019-04-19 |
Family
ID=56160646
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610202239.6A Active CN105721224B (zh) | 2016-03-31 | 2016-03-31 | 统一资源定位符处理方法、装置和*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105721224B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107343028B (zh) * | 2017-06-13 | 2020-10-27 | 江西山水光电科技股份有限公司 | 一种基于http协议的通信方法及*** |
CN108255993A (zh) * | 2017-12-29 | 2018-07-06 | 北京三快在线科技有限公司 | 提取业务字段的方法、装置、电子设备及存储介质 |
CN110895583B (zh) * | 2018-09-12 | 2023-05-30 | 阿里巴巴集团控股有限公司 | 数据资源获取的方法、装置和*** |
CN112579877A (zh) * | 2019-09-30 | 2021-03-30 | 北京国双科技有限公司 | 信源***的控制方法、装置、存储介质和设备 |
CN110807114B (zh) * | 2019-11-07 | 2024-01-30 | 北京有竹居网络技术有限公司 | 用于图片展示的方法、装置、终端及存储介质 |
CN111881216A (zh) * | 2020-08-03 | 2020-11-03 | 北京罗克维尔斯科技有限公司 | 一种基于共享模板的数据获取方法和装置 |
CN112650955B (zh) * | 2020-12-30 | 2024-04-12 | 中国农业银行股份有限公司 | 一种统一资源定位符url的处理方法及装置 |
CN112685022B (zh) * | 2020-12-30 | 2022-12-13 | 北京字节跳动网络技术有限公司 | 图片处理接口生成方法、装置、设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1327195A (zh) * | 2000-05-08 | 2001-12-19 | 互联网号码公司 | 用于访问在一个网络上的信息的方法和*** |
CN101019119A (zh) * | 2004-07-14 | 2007-08-15 | Google公司 | 基于名称的url输入 |
US7539776B1 (en) * | 2004-06-17 | 2009-05-26 | Sun Microsystems, Inc. | Dynamic uniform resource locator compression |
CN102333082A (zh) * | 2010-08-23 | 2012-01-25 | 微软公司 | 安全的url缩短 |
CN102831205A (zh) * | 2012-08-09 | 2012-12-19 | 北京百度网讯科技有限公司 | 一种网络资源按需处理方法及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7698347B2 (en) * | 2005-08-18 | 2010-04-13 | Yahoo! Inc. | System and method for shortening click URLS |
-
2016
- 2016-03-31 CN CN201610202239.6A patent/CN105721224B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1327195A (zh) * | 2000-05-08 | 2001-12-19 | 互联网号码公司 | 用于访问在一个网络上的信息的方法和*** |
US7539776B1 (en) * | 2004-06-17 | 2009-05-26 | Sun Microsystems, Inc. | Dynamic uniform resource locator compression |
CN101019119A (zh) * | 2004-07-14 | 2007-08-15 | Google公司 | 基于名称的url输入 |
CN102333082A (zh) * | 2010-08-23 | 2012-01-25 | 微软公司 | 安全的url缩短 |
CN102831205A (zh) * | 2012-08-09 | 2012-12-19 | 北京百度网讯科技有限公司 | 一种网络资源按需处理方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN105721224A (zh) | 2016-06-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105721224B (zh) | 统一资源定位符处理方法、装置和*** | |
CN104137520B (zh) | 一种消息推送方法及装置 | |
CN105376443B (zh) | 云***以及由云***显示内容的方法 | |
CN106446049B (zh) | 一种页面数据交互装置及方法 | |
CN107809492A (zh) | 分享信息的生成方法和*** | |
CN109522330A (zh) | 基于区块链的云平台数据处理方法、装置、设备及介质 | |
CN104917666A (zh) | 一种制作个性化动态表情的方法和装置 | |
CN109474844A (zh) | 视频信息处理方法及装置、计算机设备 | |
US11151219B2 (en) | Generating rich digital documents from limited instructional data | |
CN110650255B (zh) | 彩铃编辑的方法、装置、彩铃编辑单元及存储介质 | |
CN108960988A (zh) | 一种个性化壁纸推荐方法、装置、终端设备及存储介质 | |
CN110347946A (zh) | 一种页面展示方法、装置、计算机设备及存储介质 | |
CN107092634A (zh) | 页面预览的实现方法和装置 | |
CN108282667A (zh) | 显示控制方法、***及装置 | |
CN111679811B (zh) | Web服务构建方法及装置 | |
CN113938699B (zh) | 基于网页快速建立直播的方法 | |
CN104063475A (zh) | 用户自定义列表处理方法和装置 | |
CN115526160A (zh) | 富文本处理方法、装置、设备及存储介质 | |
CN105119944B (zh) | 一种应用的启动方法和相关装置 | |
CN103647703A (zh) | 一种浏览器进行通信的方法和一种浏览器终端 | |
CN107734397A (zh) | 电视广告获取、显示方法、广告服务器、电视机及*** | |
CN114253436A (zh) | 一种页面展示方法、装置及存储介质 | |
CN104572816A (zh) | 信息处理方法及电子设备 | |
CN111062470A (zh) | 一种ai处理方法及装置 | |
CN108023949A (zh) | 拨号上网方法、***、智能终端及服务器 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |