2016 - 2024

感恩一路有你

网站免费推广的方式 有没有免费的短网址工具?

浏览量:4168 时间:2023-05-17 20:24:54 作者:采采

有没有免费的短网址工具?

我是@程序员小助手,本文从技术角度,对短网址参与深度挖掘。

前言网上早就有产品,用着还还好。但,作为程序员,从头学习造轮子,开发一个属于什么自己的短网址服务器,这想法amazing!

通过本文,读者可明白短网址的技术原理,以及实际Go语言实现程序一个短网址服务。

简明教程短网址为么未知?

微博等产品的兴起,亢奋了网上的社交圈内大多数用户。可是微博就像有140字限制,如果不转发消息,前者评论文字,再加上一段网址,极有可能最多限制而被截断。

短网址因运而生,用长短不同的一个字符串,替换较长的一个字符串,从观感上讲,效果要不友善的多。

从技术原理上说,短网址是一个hash表,作用于折射两个字符串的对应关系。

在用键,可以找到按的值,重定向参与访问,就完成了整个流程。

短网址算法短网址的一般结构,诸如新浪的SwuTjn,其中后端的一段6位字符串,那就是利用任何标记一条记录的ID。这样,不使用什么算法,这个可以生成一条无再重复一遍的ID呢?

建议使用通用的做法,使用0-9A-Za-z一共有多少62个字符,我们看建议使用hash键位数各有多少种排列组合情况。

1位:pow(62,1)62种

2位:pow(62,2)3844种

3位:pow(62,3)238328种

4位:pow(62,4)14776336种

5位:pow(62,5)916132832种

6位:pow(62,6)56800235584种

一般情况下,6个字符,就起码在用了,约计568亿种可能。

有一种情况是,用原网址字符串的MD5值,一共32位,后再按照切两类4段,四个按位与运算,并裁切到30位。不宜超过5位改选该位的字符作为该段索引,总共6位。但是这种做法也有几率再一次发生重复,也不非常直观。

但本文不使用第一种算法生成键ID。

工具马上准备分析什么短网址的特性,包含200元以内项目:

唯一性:键要全局唯一时效性:键是需要有过期时间目标网址真正,假如重复,则不自动回既有的键。决定到上述情形,我们使用redis存储位置这些对应关系。使用Gin框架充当路由和控制器,提供对外的API访问。

核心函数计算机中常见的2进制,8进制,10进制,16进制,我们此处必须可以使用62个字符,循环意思是一个整数,那就可称之为62进制。

下面可以使用go语言实现方法这个函数,应用于将横竖斜的整数(uint64)转换为(0-9A-Za-z)的字符串。

是需要尽量,基础的方法,应该是非循环取余数,根据进制字典,索引你所选的字符,然后把将各个余数拼接进去,就是结果。

这个计算方法,与2进制,8进制,原理是相同的。

由于字典比较好长,有62个键值对,我们仅列出一部分。

上述事项函数的转换结果,不同于648926400175ai0p

功能规划下面是对于系统路由,创建家族短链接,包括建议使用短链接不能访问目标网址的方法。

1-规划路由

路由也很简单的,最少2个,一个POST方法,生成短链接;一个是GET方法,ftp访问短链接。

代码万分感谢:

2-化入redis并初始化

目的是更方便演示,我们不使用redis存储键值,并系统设置expire时间。我们可以使用you-redis需要提供的接口操作redis数据库。

下面是全局的

对象生成气体,和初始化设置函数。

那样做的好处是,我们全局都可以不不使用变量rdb内部函数方法操作redis键值。

3-实现POST路由方法:assign

本函数用于能接收form表单数据,能生成一个全局真正的hash,才是键,卡内redis,设置中值和快到期时间。

代码万分感谢:

本段我们建议使用了一个getCounter函数,这是系统设置在redis内的键,将其每次来只是请求创建角色的时候,自增1,可能保证无重复。据这个计数器,我们调用helper的DecToAny方法,将其转化成为62进制的字符串,才是全局同样的hash值。

下图是getCounter的定义:

尤其注意一点的是,helper包,就是我们在“核心函数”部分定义的函数。在主函数体内摘录。

4-实现程序GET方法:visit

本函数主要注意主要用于使用上一节接口生成气体的短链接,并且访问,并自动重定向到目标网址。

代码万分感谢:

这对不未知的短链接,或是redis资源失败的可能,回出现了错误信息。

如果不是存在,可以使用301StatusMovedPermanently状态码重定向到目标地址。

测试我们在用curl工具,测试3根据上述规定两个接口。

简单,可以使用POST表单递交数据:

curl-s-XPOST-dtarget-dexpire600:9090/

本案所涉方法,我们重新提交了两个参数,命中等级路由之后,会访问上一节第3条的add方法,并能生成一个短链接网址。前往JSON格式数据万分感谢:

{message:ok,frequent_url::9090/75ai0r,status:1}

其中,short_url就是短网址。

而后,我们在可以使用curl访问这个链接,看如何确定突然发生重定向。截图::

看的到,想执行了301重定向,并提出了目标网址,与我们上列表单是想创建的地址完全不同。

后来,故障测试。访问网络一个不未知的hash,看是否是首先排除无比信息。截图::

可以清晰的看到,负责执行了错误赶往信息。

结语以上我们建议使用GO语言框架Gin实现程序了两个路由,并不使用redis管理短链接。核心函数使用helper包管理,经测试出来,实现程序了短网址的功能。

以内代码在本地测试按照,也可重新部署到线上服务器组织开发端口,提供服务,效果是差不多的。

我希望按照这个流程,使大家相对于短网址的知识,有一些打听一下,并能依据自身的编程能力,独立创作出好些得用短网址服务。

beautifulcoding:-)

【本文由@程序员小助手公告,持续彼此分享编程与程序员成长会相关的内容,请关注】

请问怎样才能把自己的产品免费推广出去,让销售量大?

免费推广得看是什么产品,有些专业啊产品,做能免费做推广做的再说也能推广出好效果。若不是竞争激烈产品,那你哦了!做推广最有用的那就是分析什么产品的特性,分析竞争状况,怎么制作最适合自己的方案,后再坚定不移的如楼上老兄问及的某几种相结合,以求量变达到质变!

网址 方法 函数 字符串

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。