当前位置:首页 > 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网络软件专家

  • 关注微信关注微信

猜你喜欢

热门标签

联想yoga系列排名 支付宝小程序支付开发文档 ppt怎么设置16:9界面 荣事达电饭煲怎么用 360借条解除绑定还扣费么 win10电脑屏幕图片设置在哪里 自动获取ip地址怎么设置 微店订单编号查询快递信息 苹果以旧换新价格表官网2023 苹果手机自带软件怎么恢复 word标准绿色双波浪下划线怎么弄介绍 win10剪贴板怎么打开 怎么建立arccatalog如何在ArcMAP10中启动ArcCatalog? 无线ap面板安装示意图 苹果手机输入换行怎么操作 ps如何在平面图上添加花草树木鸟瞰图设计用什么软件?介绍下详细的流程?介绍 怎样分类汇总出excel中想要的数据excel怎么实现分类汇总?介绍 江西华为fusionserver服务器报价有没有开源的虚拟机软件?介绍 废物利用教程手机版有多余的手机壳舍不得扔掉可以做什么?介绍 青少年模式的密码忘记了怎么操作青少年模式密码忘记怎么解开?介绍 新媒体运营的工作前景新媒体运营新手的月薪一般是多少? 微信怎么加脉脉好友怎么要到女孩子的手机号? cad花卉填充cad木纹用什么填充? 数据结构最简单的排序方法什么是基本算法步骤?介绍 华为手机滚动截屏方法 手机怎么保养电池最好华为荣耀手机咋充电电池耐用?介绍 微信查消费明细怎么查微信支出明细怎么查?介绍 怎么让笔记本变成wifi笔记本怎么手动添加wifi?介绍 学习python需要掌握哪些基本知识python怎么入门? iptv机顶盒

微信公众号