怎么建立一个自己的网站(有没有免费的短网址工具)

建站教程 1年前 (2022) admin
82 0

网上已经有产品,用着还不错。可是,作为程序员,从零开始造轮子,开发一个属于自己的短网址服务器,这想法amazing!

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

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

前言

网上已经有产品,用着还不错。可是,作为程序员,从零开始造轮子,开发一个属于自己的短网址服务器,这想法amazing!

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

简明教程

短网址为什么存在?

微博等产品的兴起,活跃了网上的社交圈内大多数用户。但是微博一般有140字限制,如果不转发,单纯评论文字,再加上一段网址,极有可能超过限制而被截断。

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

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

使用键,找到对应的值,重定向进行访问,就完成了整个流程。

短网址算法

短网址的一般结构,比如新浪的 SwuTjn,其中后端的一段6位字符串,就是用来唯一标记一条记录的ID。那么,使用什么算法,可以生成一条无重复的ID呢?

使用通用的做法,使用 0-9 A-Z a-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。

工具准备

分析短网址的特性,包含以下项目:

唯一性:键需要全局唯一时效性:键需要有过期时间目标网址唯一,如果重复,则自动返回既有的键。

考虑到上述情形,我们使用redis存储这些对应关系。使用Gin框架作为路由和控制器,提供对外的API访问。

核心函数

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

下面使用go语言实现这个函数,用于将任意的整数(uint64)转换为(0-9A-Za-z)的字符串。

需要注意,基础的方法,就是循环取余数,根据进制字典,索引相应的字符,然后将各个余数拼接出来,就是结果。

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

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

上述函数的转换结果,类似于 6489264001 = 75ai0p

功能规划

下面是对于系统路由,创建短链接,以及使用短链接访问目标网址的方法。

1 - 规划路由

路由比较简单,一共2个,一个POST方法,生成短链接;一个是GET方法,访问短链接。

代码如下:

2 - 引入redis并初始化

为了方便演示,我们使用redis存储键值,并设置expire时间。

"github.com/gin-gonic/gin" "github.com/go-redis/redis/v7"

我们使用go-redis提供的接口操作redis数据库。

下面是全局的

redis.Client

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

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

3 - 实现POST路由方法:add

本函数用于接收form表单数据,生成一个全局唯一的 hash ,作为键,存入redis,设置值和过期时间。

代码如下:

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

下图是 getCounter 的定义:

特别注意的是,helper包,就是我们在“核心函数”部分定义的函数。在主函数体内引用。

4 - 实现GET方法:visit

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

代码如下:

对于不存在的短链接,或者redis获取失败,返回错误信息。

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

测试

我们使用curl工具,测试上述两个接口。

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

curl -s -X POST -d "target=https://httpbin.org/ip" -d "expire=600" http://localhost:9090/

上述方法,我们提交了两个参数,命中路由之后,会访问上一节第3条的add方法,并生成一个短链接网址。返回JSON格式数据如下:

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

其中,short_url 就是短网址。

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

可以看到,执行了301重定向,并给出了目标网址,与我们上述表单想要创建的地址一致。

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

可以看到,执行了错误返回信息。

结语

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

以上代码在本地测试通过,也可部署到线上服务器对外开发端口,提供服务,效果是一样的。

希望通过这个流程,使大家对于短网址的知识,有一些了解,并能根据自身的编程能力,创作出更好用的短网址服务。

Happy coding 🙂

【本文由 @程序员小助手 发布,持续分享编程与程序员成长相关的内容,欢迎关注】

怎么搭建影视网站?

手把手教您使用飞飞影视导航系统搭建一个24小时自动更新的影视网站

第一步:购买域名与虚拟主机

不管搭建什么网站,第一步肯定是先要购买一个好记的域名与适合建站程序运行的空间或云服务器,推荐从(阿里云、百度云、华为云、腾讯云、乱七八糟的什么云都可以)购买一个域名与支持PHP5.2~PHP5.6的云虚拟主机(不是云服务器、也不是轻量服务器)。

我推荐买云虚拟主机主要是因为便宜,性价比高,完全适合新手搭建(有耐心的朋友也可以申请免费主机与免费域名)。如果您只是学习建站、不需要对外提供访问服务,主机与域名都可以省了,用自己10年前的win7电脑装一个“小皮面板”或者“宝塔面板”就可以了(这一块就是搭建网站环境的另一个基础技术了,这篇教程就不详解了)。

阿里云购买云虚拟主机与域名

第二步:解析域名与绑定主机

将购买的域名解析到您刚才购买的云虚拟主机,别忘记了还要去云虚拟主机面板绑定您解析的域名,(解析域名与绑定域名是两个操作,一个都不能少)如果您不会解析或者不会绑定,可以直接联系刚才那些云主机的客服叫他们帮你操作,谁叫你是这些国内顶级互联网公司的客户呢?别看他们平常很牛的样子,这个时候对您客客气气的!

阿里云解析域名到主机

第三步:下载与上传程序

下载最新版飞飞影视导航系统(www.feifeicms.org)到您的电脑C盘(D盘、E盘、F盘随便您放,只要您找得到),下载后通过FTP软件(用得比较多的是FlashFXP)将解压后的所有源代码上传到您刚才购买的云虚拟主机或者免费申请的虚拟主机根目录内。

下载与上传飞飞影视导航系统源码

第四步:网站基本设置

参考飞飞影视导航系统的安装说明进入网站后台(您的域名/admin.php),用户名与初始密码是(admin与admin888),进入网站后台后可以看到有许多的功能模块,功能这么多,第一次使用也不知道哪些有用,哪些没用呀!所以我强烈建议,我们只需先将密码改掉,然后给自己的网站取个名字,最后再添加一部影片测试就可以了,其它那些功能等我们的网站正常运行后再一个一个详细了解。

使用飞飞影视导航系统添加一部影片

第五步:搜索影视资源站

通过上一步的初步尝试,我们已经学会了怎么添加影片,一部一部添加太累了吧?所以我们就需要用到一个很重要的功能“一键采集”。一键采集就是通过采集影视资源站的API数据接口几分钟就可以采集到几千部影片。

一般的做法是通过搜索引擎搜索“电影资源站”,这些电影资源站一般都有提供API接口地址,这里我们以(api.php/provide/vod)为例,将API地址填到资源站地址的表单内并保存(名字随便取一个就可以了)?

头条搜索影视资源站

第六步:采集影视数据

添加好影视资源站后,我们回到“视频资源站”找到您刚才添加的网址并点击进入,此时系统会自动分析出结果,在采集前需要将资源站的分类与自己的电影网站分类绑定后才可以采集。通过这个功能我们可以有选择性地采集一些类型影片,比如我只采集“韩剧、美剧、泰剧等”,同时有多个采集方案,第一次肯定是选择“采集所有”了,后期每天手动更新我们就选择“采集当天”。

采集前绑定分类

第七步:24小时自动更新

24小时无人值守自动更新功能则需要使用到飞飞影视导航系统的定时采集功能,飞飞影视导航系统提供了两种定时采集功能,第一种挂机版就是需要打开电脑,执行定时采集任务后浏览器不能关掉;第二种就是通过(Windows、Linux)的计划任务来加载定时更新的专用网址(不管您用什么方法,只要定期去访问那个网址就行了,可以留言讨论您们都使用什么方法)。

飞飞影视导航系统定时采集之挂机版

飞飞影视导航系统定时采集之计划任务版

第八步:愉快的看电影吧

随便选择一部影片测试看看吧,飞飞影视导航系统的其它剧情介绍、影视资讯、明星资料、影视角色、台词等功能请小伙伴们自行体验,有好的建议与BUG也欢迎一起讨论,最后重点划一下,使用此方法搭建的网站请勿用作商业用途,仅作学习交流使用。

飞飞影视导航系统播放演示

抖音创建官网主页如何创建?

第一种——淘宝店铺,需要淘宝店铺认证的营业执照与我们的蓝V认证的营业执照一样,即可添加。

第二种——自己的官方网站,如果自己有官方网站也可以添加,不过要求带有与蓝V认证相同的备案,同时还不能带有购物功能。

第三种——橙子网址,抖音官方自己的建站平台制作的网址也可以添加。

怎么开发一个自己的网站?

如果你是从事这方面工作的话,完全可以自己搭建,基本的流程就是购买域名备案>编写代码>部署上线,其中最困难应该就是编写代码了,一个完整的网站是由前后端组成的,也就是说你必须所有的技术都会才能完成,不过呢你可以选择模板自助建站,根据现有的模板,加以修改就可以了,阿里云就有推出云速美站,没有技术要求,只需会电脑的基础操作就可以了,千套模板可以选择,针对几乎每个行业,专业人员一对一解答,云·速成美站功能亮点

点击了解:https://ac.aliyun.com/application/webdesign/sumei?userCode=pbr3yqtc

但对于需求很多,业务逻辑复杂的项目来说,模板建站可能会满足不了,那么就可以选择定制建站了,你无需任何操作,只需提供相关的需求说明,阿里云专家会一对一的完成建站,点击了解:https://ac.aliyun.com/application/webdesign/yunqi?userCode=pbr3yqtc

怎么在服务器搭网站?

今天是周末,有时间,我来简单回答您的问题。

一般来讲,建一个正式的网站需要以下几个流程:

1、 注册域名;

2、 域名备案;

3、 编写代码;

4、 购买服务器;

5、 配置网站。

因为您的问题的重点是“怎么在服务器上搭建网站”,所以我就着重谈最后三点,“编写代码”、“购买服务器”和“配置网站”。

一、编写代码:

相信大部分人都没有编写代码的能力,除非你是专业的ASP、PHP或JAVA工程师,如果您不是后者,建议您在网站上下载一些开源的代码,再配上一套合适的模版,应该都能满足你建站的需要。

常见的建站代码类型和数据库类型一般有两种:

1、PHP类型代码+MySQL类型数据库;

2、ASP类型代码+Microsoft SQL Server数据库。

本人使用最多的国外的一个免费开源建站代码WordPress,WordPress是使用PHP语言和MySQL数据库开发的一介建站平台,最初只应用于博客建站,后来由于用户量增加,全球大约34%的网站都在用WordPress,很多企业和个人设计了各种各样的模板,包括个人博客类、新闻类、企业类、社区类、电商类等等,WordPress现在已经拥有将近50000个扩展插件和5000个主题模板,数量不可说不菲。

可以说,无论您是搭建哪种的网站,都可以通过网上购买模板,或自行设计模板把WordPress打扮成自己想要的模样。

WordPress最新版本5.4.1的下载地址:https://wordpress.org/latest.zip 1

二、购买服务器:

根据您要建站的代码和数据库类型,我们再来选择购买搭建相对应的云服务器。

如果您的网站为PHP类型代码+MySQL类型数据库,应选择Linux服务器,Linux服务器的操作系统有CentOS、Ubuntu、Red Hat、Debian等为代表,其中CentOS用的最多;

如果您的网站为ASP类型代码+Microsoft SQL Server数据库,应选择Windows服务器,以微软Windows Server 2008、2012、2016为代表,其中Windows Server 2012用的最多。

关于服务器类型,大家可以参看阿里云系统镜像列表清单:

对于初级建站需求,可以考虑选择1 CPU核心、1G内存、1M带宽,年费仅893.4元,很便宜哟,后期可以根据业务发展需要进行升级配置。

三、配置网站:

如果您根据我的建议,选择了WordPress建站,那么请您务必选用最流行的CentOS操作系统的云服务器,CentOS版本选择7.7(为了更好地兼容下面我们要讲的宝塔管理面板服务器管理工具)即可。

CentOS服务器管理工具建议选择宝塔Linux管理面板,可以让你非常方便地管理你的Linux服务器。

宝塔管理面板软件最新版本为7.2,下载地址见文章尾部外部链接:

https://www.bt.cn/?invite_code=MV9qYWVtcGs=

4

宝塔管理面板CentOS操作系统上的安排方法如下,对于小白说,可能会有些陌生,也有些难度,但其实只要不输入错误,就基本上是正常的。

好,我们下面开始操作如何在CentOS7.7服务器操作系统上安装宝塔管理面板工具了。

1、下载堡塔SSH终端,下载地址:https://bt.cn/download/term.html

2、在通过堡塔SSH终端连接CentOS服务器后,输入以下命令行:

yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh

上面的命令行内容,一个都不能少,也不能有空格,最好是拷贝再粘贴。

一行代码,2分钟就能装好,不可谓不快捷,不可谓不好用。

安装完成,我们通过http://IP地址:8888端口号就可以打开宝塔管理面板后台,截图如下:

5

6

在宝塔管理面板里,点击左侧“网站”菜单,就可以配置网站域名、默认目录;点击“文件”菜单,就可以上传代码,而且还支持在线解压缩。

我们通过点击“文件”菜单将WordPress压缩包上传到服务器空间,然后再解压缩,并配置域名网站(域名需要在管理后面解析至服务器IP),经过一系列部署,我们在浏览器里打开绑定在服务器器IP地址的域名,网站首面显示如下(其中一个内置的模板):

如果你愿意花钱找人设计新的模板,那么你的WordPress网址也可以是这样子的:

网站搭建就告一段落,因篇幅有限,建站过程中很多细节,不能一一描述,如果仍有问题请留言交流。

以上内容希望能对你有帮助,谢谢!

版权声明:admin 发表于 2022年12月31日 am1:25。
转载请注明:怎么建立一个自己的网站(有没有免费的短网址工具) | 热豆腐爱做网站导航

相关文章