当前位置:首页 > TAG信息列表 > canvas画布中的背景代码有没有免费的短网址工具?

canvas画布中的背景代码有没有免费的短网址工具?

canvas画布中的背景代码 有没有免费的短网址工具?

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

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

前言网上已经有产品了,用起来还不错。但是,作为一个程序员,从零开始造轮子,开发一个属于自己的短url服务器,是很了不起的!

通过本文,读者可以了解短url的技术原理,并通过go语言实现一个短url服务。

canvas画布中的背景代码 有没有免费的短网址工具?

简明教程的短url为什么会存在?

微博等产品的兴起,活跃了网络社交圈的大部分用户。但是微博一般有140字的限制。如果你不t转发,单纯评论文字,加上网站的一段,极有可能超限被截。

短url应运而生,用一个更短的字符串代替一个更长的字符串,从观感上来说要友好很多。

从技术上讲,短url是一个哈希表,用来映射两个字符串之间的对应关系。

使用键,找到对应的值,重定向到access,完成整个过程。

短url算法(shorturlalgorithm)短url的一般结构,如新浪的swutjn,后端的一个6位字符串是用来唯一标记一条记录的id。那么,用什么算法可以生成一个不重复的id呢?

使用通用方法,使用0-9a-za-z,共62个字符,let让我们看看使用散列密钥数字有多少排列和组合。

一个位置:62种幂(62,1)

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种。

一般来说,六个字符就够了,有568亿种可能。

还有一种情况,原始url字符串的md5值一共32位,然后分成4段,分别按位与,截成30位。每隔5位选取该位的字符作为本段的索引,共6位。但这种做法也有重复的可能,并不直观。

因此,本文采用第一种算法来生成密钥id。

该工具可以分析短url的特征,包括以下项目:

惟一性:密钥需要是全局惟一的和时间敏感的:密钥需要有一个截止日期,并且目标url是惟一的。如果它们是重复的,现有的密钥将自动返回。考虑到以上情况,我们使用redis来存储这些对应关系。gin框架被用作路由器和控制器来提供外部api访问。

核心函数计算机中常见的二进制、八进制、十进制和十六进制,我们这里需要用62个字符循环表示一个整数,所以可以称之为62。

让s用go语言实现这个函数,用来把任意整数(uint64)转换成(0-9a-za-z)的字符串。

需要注意的是,基本方法是循环取余数,根据十进制字典索引相应的字符,然后将余数拼接在一起,就是这个结果。

这个计算方法和二进制、八进制是一样的。

因为字典很长,有62个键值对,所以我们只列出其中的一部分。

上述函数的转换结果类似于648926400175ai0p。

功能规划以下是系统路由、创建短链接、使用短链接访问目标url的方法。

1-计划工艺路线

路由比较简单,一共两个,一个post方法,生成短链接;一个是get方法,它访问短链接。

代码如下:

2-介绍redis并初始化

为了演示方便,我们使用redis存储键值并设置过期时间。我们使用go-redis提供的接口来操作redis数据库。

以下是全局。

对象生成和初始化功能。

这样做的好处是,我们可以使用变量rdb调用方法来全局操作redis键值。

3-实施发布路由方法:添加

这个函数用于接收表单数据,生成一个全局唯一的散列,作为一个键,存储在redis中,设置值和过期时间。

代码如下:

在这一段中,我们使用了一个getcounter函数,它是redis中的一个键集。每次请求创建它时,它都会增加1,以确保没有重复。根据这个计数器,我们称之为助手的dectoany方法,并将其转换为作为全局唯一哈希值的62位字符串。

下图是getcounter的定义:

要特别注意助手包,这是我们在"核心功能和部分。主函数体中的引用。

4-实现get方法:访问

这个函数主要是利用上一节接口生成的短链接来访问并自动重定向到目标url。

代码如下:

对于不texist,或者redis无法获取,则返回一条错误消息。

如果存在,请使用301statusmovedpermanently状态代码重定向到目标地址。

测试我们使用curl工具来测试上面两个接口。

首先,使用post表单提交数据:

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

在上面的方法中,我们提交了两个参数。命中路由后,我们将访问上一节第3条中的add方法,并生成一个短链接url。以json格式返回数据,如下所示:

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

其中short_url是短url。

接下来,我们使用curl来访问这个链接,看看是否发生了重定向。截图如下:

如您所见,执行了301重定向并给出了目标url,这与我们在上面的表单中想要创建的地址一致。

最后,故障测试。访问一个不存在的hash,看是否排除了异常信息。截图如下:

如您所见,执行了一条错误返回消息。

以上结论,我们使用go语言框架gin实现两条路由,使用redis管理短链接。核心功能由助手包管理。经过测试,实现了短url的功能。

上面的代码已经通过了本地测试,也可以部署到onlineserver的外部开发端口提供服务,效果是一样的。

希望通过这个过程,可以对短url的知识有所了解,根据自己的编程能力,创建更好的短url服务。

happycoding:-)

【本文由@程序员的助手,并继续分享与编程和程序员的成长。欢迎关注。]

app怎么使用图表?

如果是开发androidapp,需要下载android开源图表库mpandroidchart的jar包,导入到项目libs中使用。

说明可以参考其api文档。

如果你不如果您不想导入外部jar包,您可以学习在画布上编写代码来绘制您想要的图表。

方法短url函数字符串


江西自考之家 websoft网络软件专家

  • 关注微信关注微信

猜你喜欢

热门标签

京东会员优惠券 Excel怎么输入密码才能打开 快手如何看别人关注的人? ppt怎么设置16:9的尺寸 华为新机抽奖最新入口2021华为新机抽奖活动介绍 美团商家版津贴联盟怎么取消 芒果评论怎么删除 怎样安装电脑系统 大王卡免流应用有哪些 用易拉罐增强wifi信号真的有用吗 如何用腾讯会议一起看电影腾讯会议怎么在共享屏幕上打字? appstore红包怎么变现商家兑换的支付宝积分怎么变现? 电脑怎么装惠普打印机驱动程序hp打印机驱动怎么安装? 华为hg8245光纤猫如何设置开启华为路由器hg8245怎么设置?介绍 word怎么设置段落文字边框电脑文字加边框怎么设置?介绍 虚拟运营商号码 ps中如何把图片变成画画效果怎么用photoshop画图? 华为手机桌面壁纸怎么换 希沃白板安装软件 excel表两行内容怎样合成一行excel表格怎么把2行合成1行? oppo手机声音放不出来oppo手机语音没声音怎么办?介绍 iphone专用手机铃声iphone怎么自定义铃声? oppor9splus跟r11plus有什么区别oppo手机型号大全顺序?介绍 京东后台在哪里可以设置最低折扣京东怎么设置区域无货? 大华摄像头app下载安卓 怎么上传小于50kb的小二寸照片50kb的照片怎么设置?介绍 oppo手机屏幕时间长短在哪里设置oppor9s录像时间长短如何设置? 脸上磨皮最快的方法磨皮是什么意思?介绍 打印机传真故障怎么解决为什么我安装了打印机后打印时出现发送传真的字?介绍 淘宝美工系统学习淘宝美工自学还是当学徒好?

微信公众号