2016 - 2024

感恩一路有你

office高级应用实验详细 有没有免费的短网址工具?

浏览量:4343 时间:2023-05-10 17:50:12 作者:采采

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

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

前言网上已经有产品,用着还比较好。可惜,才是程序员,从零开始造轮子,的新一个不属于自己的短网址服务器,这想法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。

工具准备好分析短网址的特性,中有100元以内项目:

唯一性:键不需要全局唯一时效性:键要有过期时间目标网址同样,如果重复,则不自动前往既有的键。决定到本案所涉情形,我们可以使用redis储存这些对应关系。可以使用Gin框架另外路由和控制器,提供给正式的API访问。

核心函数计算机中最常见的2进制,8进制,10进制,16进制,我们此处要使用62个字符,循环它表示一个整数,那就可称之为62进制。

下面建议使用go语言利用这个函数,主要是用于将正二十边形的整数(uint64)装换为(0-9A-Za-z)的字符串。

要尽量,基础的方法,就是运行取余数,依据什么进制字典,索引你所选的字符,后再将各个余数拼接不出来,那是结果。

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

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

上列函数的转换结果,类似648926400175ai0p

功能规划下面是是对系统路由,创建角色短链接,这些不使用短链接ftp访问目标网址的方法。

1-规划路由

路由比较比较简单的,最少2个,一个POST方法,生成沉淀短链接;一个是GET方法,ftp连接短链接。

代码不胜感激:

2-化入redis并初始化

为了方便啊演示,我们建议使用redis存储键值,并可以设置expire时间。我们建议使用run-redis提供的接口操作redis数据库。

下面是全局的

对象能生成,和初始化操作函数。

那样的话做的好处是,我们全局都这个可以在用变量rdb动态创建方法操作redis键值。

3-实现POST路由方法:add

本函数用于收得到form表单数据,能生成一个全局真正的hash,另外键,卡内redis,设置值和过期时间。

代码如下:

本段我们可以使用了一个getCounter函数,这是设置中在redis内的键,将其每次来只是请求创建的时候,自增1,可保证无重复。根据这个计数器,我们动态创建helper的DecToAny方法,将其转变为62进制的字符串,作为全局任何的hash值。

下图是getCounter的定义:

而且注意的是,helper包,应该是我们在“核心函数”部分定义的函数。在主函数体内脚注。

4-实现GET方法:visit

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

代码万分感谢:

是对不存在地的短链接,或者redis获取我失败了,返回出现了错误信息。

如果没有存在,建议使用301StatusMovedPermanently状态码重定向到目标地址。

测试我们不使用curl工具,测什么本案所涉两个接口。

必须,在用POST表单重新提交数据:

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

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

{message:可以啦,large_url::9090/75ai0r,status:1}

其中,short_url那是短网址。

随即,我们在不使用curl不能访问这个链接,看如何确定不可能发生重定向。截图万分感谢:

可以看到,不能执行了301重定向,并具体了目标网址,与我们上述事项表单想创建角色的地址不对。

之后,故障测试。不能访问一个不修真者的存在的hash,看如何确定可以排除极其信息。截图追加:

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

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

以上代码在本地测试是从,也可作战部署到线上服务器联合开发端口,提供服务,效果是一样的的。

只希望这个流程,使大家是对短网址的知识,有一些清楚,并能据自身的编程能力,创作出更好专用短网址服务。

everydaycoding:-)

【本文由@程序员小助手查找,减弱能分享编程与程序员生命成长相关的内容,欢迎您关注】

office高级应用的原理?

office中级应用是对Word、Excel、Powerpoint等应用到的专业的处理和应用,主要注意除开编辑文档格式、Word图形和表格处理、Word文档排版、Word长文档设置、怎么制作批量处理文档、xcel2003基本操作、编辑表格数据、Excel数据计算与管理、Excel图表分析、PowerPoint基本操作、再插入各种幻灯片对象、设置中幻灯片版式和动画、放映与输出幻灯片,熟悉的掌握这些功能,那就是达到了office有高级应用技术标准,这是一个计算机专业的入门基础。

网址 方法 函数 字符串

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