短链接生成方法、装置及服务器与流程

文档序号:18465432发布日期:2019-08-17 02:24阅读:221来源:国知局
短链接生成方法、装置及服务器与流程

本发明涉及通信技术,尤其涉及一种短链接生成方法、装置及服务器。



背景技术:

互联网应用中的各种内容都具有对应的链接,用户可以通过链接来访问相应的内容。内容提供商在向用户推送链接时,可以通过短信的方式,将链接写在短信中推送给用户,用户之间也可以通过终端发送短信分享链接。

以终端为手机为例,由于手机短信长度是有限制的,当链接为包含字符较多的长链接时,用户接收到的信息可能不全或者被拆分成两条短信,从而影响用户访问该链接。因此,通常需要将长链接转换为包含字符较少的短链接,并将短链接写在短信中推送给用户。

现有技术中,通常是采用哈希算法将长链接转为短链接,但由于哈希算法具有碰撞性,使得转换的短链接不具有唯一性,即不同的长链接有可能被转换为相同的短链接,从而导致用户通过短链接进行访问时发生访问异常。



技术实现要素:

本发明提供一种短链接生成方法、装置及服务器,在将长链接转换为短链接时,使得转换后短链接具有唯一性,从而提高了访问的正确性。

本发明提供一种短链接生成方法,应用于服务器,该方法包括:

根据该服务器的标识确定待转换长链接对应的第一字符串;

为该待转换长链接分配对应的第二字符串;该待转换长链接对应的第二字符串与该服务器中的其他长链接对应的第二字符串不同;

根据该待转换长链接对应的域名、该第一字符串及该第二字符串,生成该待转换长链接对应的短链接。

可选的,该根据该服务器的标识确定待转换长链接对应的第一字符串,包括:

从数据库集群中获取该服务器的标识;

对该服务器的标识进行缩短处理,得到该待转换长链接对应的第一字符串。

可选的,该为该待转换长链接分配对应的第二字符串,包括:

获取预设字符;该预设字符为该服务器处理该待转换长链接的顺序值,或者,该预设字符为该服务器为该待转换长链接分配的随机值;

对该预设字符进行缩短处理,得到该待转换长链接对应的第二字符串。

可选的,该根据该待转换长链接对应的域名、该第一字符串及该第二字符串,生成该待转换长链接对应的短链接,包括:

对该域名、该第一字符串及该第二字符串依次拼接,得到第一拼接结果;

将该第一拼接结果,确定为该待转换长链接对应的短链接。

可选的,该根据该待转换长链接对应的域名、该第一字符串及该第二字符串,生成该待转换长链接对应的短链接,包括:

对该域名、该第二字符串及该第一字符串依次拼接,得到第二拼接结果;

将该第二拼接结果,确定为该待转换长链接对应的短链接。

可选的,该根据该待转换长链接对应的域名、该第一字符串及该第二字符串,生成该待转换长链接对应的短链接,包括:

采用消息摘要算法计算该待转换长链接对应的第三字符串;

对该域名、该第一字符串、该第二字符串及该第三字符串依次拼接,得到第三拼接结果;

将该第三拼接结果,确定为该待转换长链接对应的短链接。

可选的,该方法还包括:

建立并存储该待转换长链接与其对应的短链接之间的映射关系。

可选的,该数据库集群为redis集群。

本发明提供一种短链接生成装置,该装置包括:

确定模块,用于根据该装置的标识确定待转换长链接对应的第一字符串;

分配模块,用于为该待转换长链接分配对应的第二字符串;该待转换长链接对应的第二字符串与该装置中的其他长链接对应的第二字符串不同;

生成模块,用于根据该待转换长链接对应的域名、该第一字符串及该第二字符串,生成该待转换长链接对应的短链接。

可选的,该确定模块具体用于:

从数据库集群中获取该装置的标识;并对该装置的标识进行缩短处理,得到该待转换长链接对应的第一字符串。可选的,该数据库集群为redis集群。

可选的,该分配模块具体用于:

获取预设字符;该预设字符为该装置处理该待转换长链接的顺序值,或者,该预设字符为该装置为该待转换长链接分配的随机值;并对该预设字符进行缩短处理,得到该待转换长链接对应的第二字符串。

可选的,生成模块具体用于:

对该域名、该第一字符串及该第二字符串依次拼接,得到第一拼接结果;并将该第一拼接结果,确定为该待转换长链接对应的短链接。

可选的,生成模块具体用于:

对该域名、该第二字符串及该第一字符串依次拼接,得到第二拼接结果;并将该第二拼接结果,确定为该待转换长链接对应的短链接。

可选的,生成模块具体用于:

采用消息摘要算法计算该待转换长链接对应的第三字符串;并对该域名、该第一字符串、该第二字符串及该第三字符串依次拼接,得到第三拼接结果;将该第三拼接结果,确定为该待转换长链接对应的短链接。

可选的,该装置还包括:

存储模块,用于建立并存储该待转换长链接与其对应的短链接之间的映射关系。

本发明提供一种服务器,其特征在于,包括存储器及处理器;该存储器与该处理器连接;

该存储器用于存储计算机程序;

该处理器用于在计算机程序被执行时,实现如上述任一项所述的短链接生成方法。

本发明提供一种存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时,实现如上述任一项所述的短链接生成方法。

本发明提供一种短链接生成方法、装置及服务器,根据服务器的标识确定待转换长链接对应的第一字符串;并为待转换长链接分配对应的第二字符串;待转换长链接对应的第二字符串与服务器中的其他长链接对应的第二字符串不同;再根据待转换长链接对应的域名、第一字符串及第二字符串,生成待转换长链接对应的短链接。由此可见,在生成待转换长链接对应的短链接时,可根据第一字符串和第二字符串共同确定待转换长链接所对应的短链接,由于第一字符串和第二字符串的组合唯一,因此,可保证待转换长链接所对应的短链接的唯一性,从而提高了访问的正确性。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图做一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为本发明提供的一种短链接生成方法的流程示意图;

图2为本发明提供的一种短链接生成装置的结构示意图;

图3为本发明提供的一种服务器的结构示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

图1为本发明提供的一种短链接生成方法的流程示意图。该方法的执行主体为服务器,该服务器可以通过软件和/或硬件的方式实现。如图1所示,本实施例的方法可以包括:

s101、根据服务器的标识确定待转换长链接对应的第一字符串。

可以理解的是,服务器的标识是唯一的。示例的,服务器的标识可以为服务器出厂前设置的标识,也可以为使用时,为该服务器分配的标识,只要可以唯一标识该服务器即可。

本实施例中,服务器具有对外接口以提供将长链接转换为短链接的服务,使用者可以通过调用该接口将请求发送至服务器,该请求中包括了待转换长链接。服务器接收到请求后根据该服务器的标识首先确定待转换长链接对应的第一字符串,服务器的标识为该服务器的唯一性标识。

目前互联网应用等系统多采用分布式架构,一个应用系统中可以由多台服务器提供服务,例如,将长链接转换为短链接的服务可以由多台服务器提供,且服务器的数量可以动态变化,即动态扩容或缩容,每台服务器具有不同的服务器标识。当使用者调用接口使用将长链接转换为短链接的服务时,使用者所发送的请求被分配至多台服务器中的一台上,该服务器根据该服务器的标识所生成的第一字符串可以用于区分该服务器与多台服务器中的其他服务器。

当一个服务器处理多个长链接时,若只根据该服务器的标识确定各长链接对应的第一字符串,则该多个长链接对应的第一字符串相同,此时,无法保证各长链接对应的短链接的唯一性,因此,还需要结合第二字符串共同确定长链接对应的短链接,即执行下述s102-s103:

s102、为待转换长链接分配对应的第二字符串。

其中,待转换长链接对应的第二字符串与服务器中的其他长链接对应的第二字符串不同。

上述s101中通过第一字符串可以将该服务器与多台服务器中其他服务器进行区分,在此基础上,为了保证待转换长链接对应的短链接的唯一性,还需要进一步确定第二字符串,由于待转换长链接对应的第二字符串与该服务器中的其他长链接对应的第二字符串不同,因此,可以通过该第二字符串将待转换长链接对应的短链接与该服务器中的其他长链接对应的短链接进行区分,从而保证待转换长链接对应的短链接的唯一性。

s103、根据待转换长链接对应的域名、第一字符串及第二字符串,生成待转换长链接对应的短链接。

待转换长链接由域名和一长串字符组成,将其中的域名取出,根据域名、第一字符串和第一字符串生成待转换长链接对应的短链接。由于第一字符串可以将该服务器与多台服务器中其他服务器区分,由于待转换长链接对应的第二字符串与该服务器中的其他长链接对应的第二字符串不同,因此,可以通过该第二字符串将待转换长链接对应的短链接与该服务器中的其他长链接对应的短链接进行区分,从而保证待转换长链接对应的短链接的唯一性。

本实施例提供的短链接生成方法,根据服务器的标识确定待转换长链接对应的第一字符串;并为待转换长链接分配对应的第二字符串;待转换长链接对应的第二字符串与服务器中的其他长链接对应的第二字符串不同;再根据待转换长链接对应的域名、第一字符串及第二字符串,生成待转换长链接对应的短链接。由此可见,在生成待转换长链接对应的短链接时,可根据第一字符串和第二字符串共同确定待转换长链接所对应的短链接,由于第一字符串和第二字符串的组合唯一,因此,可保证待转换长链接所对应的短链接的唯一性,从而提高了访问的正确性。

基于图1所示的实施例,s101中根据服务器的标识确定待转换长链接对应的第一字符串时,可以包括:

从数据库集群中获取服务器的标识;对服务器的标识进行缩短处理,得到待转换长链接对应的第一字符串。

本实施例中,服务器的标识可以存储在与服务器连接的数据库集群中,即数据库集群为每台服务器分配相应的服务器标识,保证每台服务器具有一个唯一性标识,在服务器的数量增加时,数据库还可以自动为新增加的服务器分配标识。可选的,数据库可以为键-值(key-value)类型的数据库,例如redis,还可以为其他形式的数据库,本发明对此不做具体限定。服务器在启动时可以进行数据预加载,从数据库集群中获取相应的服务器标识。这样,在服务器进行长链接的转换时,即可根据预先从数据库中获取的服务器的标识来生成第一字符串。

进一步地,服务器中还可预设一个字符集,例如该字符集可以包含a到z、a到z以及0到9的62个字符,利用该字符集对服务器的标识进行缩短处理。以该62个字符的字符集为例,该62个字符按照顺序排列,将服务器的标识除以62,将得到的结果中商和余数分别用字符集中相应顺序的字符代替,若商为大于62的值,则继续除以62,将商和余数分别用字符集中相应顺序的字符代替,直至商小于62,即可获得第一字符串。采用字符集对服务器的标识进行缩短处理,使获得的第一字符串长度较短,从而使待转换长链接对应的短链接长度较短。

在对服务器的标识进行缩短处理,得到待转换长链接对应的第一字符串之后,为了保证短链接的唯一性,还需要为所述待转换长链接分配对应的第二字符串,s102为待转换长链接分配对应的第二字符串,可以包括:

获取预设字符串;该预设字符串为该服务器处理该待转换长链接的顺序值,或者,该预设字符串为该服务器为该待转换长链接分配的随机值;对该预设字符串进行缩短处理,得到该待转换长链接对应的第二字符串。

本实施例中,服务器在每次进行长链接转换时所获取的预设字符串不同,预设字符串可以为按照处理待转换长链接的顺序依次增长的数值,例如每次处理待转换长链接时预设字符串的值加一或者加二等,或者该预设字符串可以为服务器中的一个内存预设值,服务器在每次进行长链接转换时,对该内存预设值进行一次自增计算,从而保证每次获得的值不同;预设字符串还可以为分配的随机值,服务器每次分配的随机值不同。之后对该预设字符串进行缩短处理,得到待转换长链接对应的第二字符串。对该预设字符串进行缩短处理的方法与上述实施例中采用字符集的方法相同,此处不再赘述。采用字符集对预设字符串进行缩短处理,使获得的第二字符串长度较短,从而使待转换长链接对应的短链接长度较短。预设字符串的初始值可以根据实际需要进行设置,从而保证每次进行长链接的转换时得到的第二字符串的长度相同。

在分别得到待转换长链接对应的第一字符串和第二字符串之后,就可以执行s103根据待转换长链接对应的域名、第一字符串及第二字符串,生成待转换长链接对应的短链接。示例的,在根据待转换长链接对应的域名、第一字符串及第二字符串,生成待转换长链接对应的短链接时,可以包括至少三种可能的实现方式,下面,将对这三种可能的实现方式进行详细的说明。

在一种可能的实现方式中,对域名、第一字符串及第二字符串依次拼接,得到第一拼接结果;并将第一拼接结果,确定为待转换长链接对应的短链接。

在另一种可能的实现方式中,对域名、第二字符串及第一字符串依次拼接,得到第二拼接结果;并将第二拼接结果,确定为待转换长链接对应的短链接。

以上两种可能的实现方式中,第一字符串根据服务器的标识获得,因此第一字符串可以将一台服务器与其他服务器进行区分,同时,一台服务器上所确定的第二字符串各不相同,因此将第一字符串和第二字符串进行拼接即可确定多台服务器中唯一的一个字符串,将域名、第一字符串及第二字符串进行拼接即可获得待转换长链接对应的短链接,且可保证该短链接的唯一性。

在又一种可能的实现方式中,采用消息摘要(messagedigest,md)算法计算待转换长链接对应的第三字符串;对域名、第一字符串、第二字符串及第三字符串依次拼接,得到第三拼接结果;并将第三拼接结果,确定为待转换长链接对应的短链接。

实际应用中,可以采用md算法的第五版本即md5算法对待转换长链接进行加密获得32位数字,将32位数字按照长度8进行切分得到4组数据。每组数据的16进制数对0x3fffffff进行按位与运算,进行低30位数字保真。将这30位数据进行6次循环,每次循环右移5位,每次右移的5位通过0x0000003d进行按位与运算进行62位比例缩小,6次循环后获取6位缩小后的数字。对每组数据分别进行处理共获得4组6位缩小后的数字,可以选择4组6位缩小后的数字中的任意一组作为第三字符串,优选地,可以选择第一组缩小后的数字作为第三字符串。

对域名、第一字符串、第二字符串及第三字符串依次拼接,得到的拼接结果即为待转换长链接对应的短链接。可选的,对域名、第一字符串、第二字符串及第三字符串进行拼接时,对第一字符串、第二字符串及第三字符串可以采用不同的拼接顺序,本发明对此不做限定。

示例地,若待转换长链接为:https://cc.xxxxx.com/kc/base/html/app_open/detail-sendmsg.html?klid=1812140017540050748&ispublished=1&isbackstage=0&reginid=97&ismission=&splitid=1812140017180050719&channelcode=chnl00000001,该待转换长链接中的域名为cc.xxxxx.com,采用本实施例的方法所确定的第一字符串为q8,第二字符串为gla9q,第三字符串为bqrazm。将域名、第一字符串、第二字符串以及第三字符串依次拼接的结果https://cc.xxxxx.com/s/q8gla9qbqrazm作为该待转换长链接对应的短链接,其中,第一字符串、第二字符串以及第三字符串依次的结果可以称为短链码,即q8gla9qbqrazm为短链码。

本实施例中通过采用md5算法计算待转换长链接对应的第三字符串,将域名、第一字符串、第二字符串及第三字符串拼接为待转换长链接对应的短链接。该方法中,若服务器获得的第一字符串异常,例如服务器从数据库集群中获取服务器的标识时,由于数据库异常导致服务器获得的标识异常,例如标识为空,则仅通过第一字符串和第二字符串无法唯一标识一个待转换长链接对应的短链接,因此通过加入第三字符串对待转换长链接对应的短链接进行区分,保证了服务的高可用性。

在另一实施例中,本发明提供的短链接生成方法还包括:建立并存储待转换长链接与其对应的短链接之间的映射关系。这样,在用户通过短链接进行访问时可以直接从映射关系中获取短链接对应的长链接,进而访问到长链接对应的内容,提高访问的效率。

以下结合实际应用对本发明提供的短链接生成方法的使用场景进行示例说明。

在实际应用中,将长链接转换短链接后,用户会通过短链接进行访问。因此可以设计两个服务:前端服务和后端服务,其中,前端服务接收将长链接转换为长链接的请求及跳转长链接,后端服务提供将长链接转换为短链接服务以及将短链接换取长链接的服务。

例如,需要通过下发短信的方式向用户放松连接时,首先通过接口调用长链接转换短链接服务,获取长链接对应的短链接,将获取的短链加入到短信模板中下发给用户。

用户通过接收到的短信中的短链接访问对应的内容时,为保证在用户访问不同的短链接时,都要做相同的响应,使用反向代理将相关路径进行拦截并反向代理到同一个入口,在入口页面加载时调用短链接换取长链接服务,获取长链接地址,通过页面重定向的方式请求长链接地址。

图2为本发明提供的一种短链接生成装置的结构示意图。如图2所示,短链接生成装置20包括:

确定模块201,用于根据短链接生成装置20的标识确定待转换长链接对应的第一字符串。

分配模块202,用于为该待转换长链接分配对应的第二字符串;该待转换长链接对应的第二字符串与短链接生成装置20中的其他长链接对应的第二字符串不同。

生成模块203,用于根据该待转换长链接对应的域名、该第一字符串及该第二字符串,生成该待转换长链接对应的短链接。

可选的,确定模块201具体用于:

从数据库集群中获取短链接生成装置20的标识;对短链接生成装置20的标识进行缩短处理,得到该待转换长链接对应的第一字符串。可选的,该数据库集群为redis集群。

可选的,分配模块202具体用于:

获取预设字符;该预设字符为短链接生成装置20处理该待转换长链接的顺序值,或者,该预设字符为短链接生成装置20为该待转换长链接分配的随机值;对该预设字符进行缩短处理,得到该待转换长链接对应的第二字符串。

可选的,生成模块203具体用于:

对该域名、该第一字符串及该第二字符串依次拼接,得到第一拼接结果;将该第一拼接结果,确定为该待转换长链接对应的短链接。

可选的,生成模块203具体用于:

对该域名、该第二字符串及该第一字符串依次拼接,得到第二拼接结果;将该第二拼接结果,确定为该待转换长链接对应的短链接。

可选的,生成模块203还可具体用于:

采用消息摘要算法计算该待转换长链接对应的第三字符串;对该域名、该第一字符串、该第二字符串及该第三字符串依次拼接,得到第三拼接结果;并将该第三拼接结果,确定为该待转换长链接对应的短链接。

可选的,短链接生成装置20还包括:

存储模块204,用于建立并存储该待转换长链接与其对应的短链接之间的映射关系。

本实施提供的短链接生成装置用于实现上述任一实施例中的短链接生成方法,其实现原理和技术效果相同,此处不再赘述。

图3为本发明提供的一种服务器的结构示意图。如图3所示,服务器30包括存储器301及处理器302;存储器301与处理器302连接。

存储器301用于存储计算机程序。

处理器302用于在计算机程序被执行时,实现上述任一实施例中的短链接生成方法。

本实施提供的服务器用于实现上述任一实施例中的短链接生成方法,其实现原理和技术效果相同,此处不再赘述。

本发明提供一种存储介质,其上存储有计算机程序,该计算机程序被处理器执行时,实现上述任一实施例中的短链接生成方法。

本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。

最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1