快缩短网址(suo.run)是一个旨在简化网址长度的创新平台。最初,短链接主要用于优化网站图片的上传过程,通过特定的算法压缩URL(统一资源定位符),从而减少代码字符数量。
随着移动营销的迅速发展,信息的传播与共享速度相比传统网络模式有了显著提升,分享内容的多样性也推动了短链接服务的兴起。快缩短网址生成器正是为此而生,它能够以简洁的网址代替原本冗长的网址,为用户提供更多可用的正文空间。
短链接的实现原理
短链接主要通过域名重定向技术,将长网址转换为短链接。当用户点击此短链接时,即可自动跳转到相应的长URL地址。域名重定向技术,又称URL转发技术,通过网站服务器或应用程序的设置,引导用户从当前域名跳转到指定目标URL地址。
#### 1. 301、302 转向
在PHP中使用
header()函数可实现301(永久性转移)或302(暂时性转移)的重定向。例如:
header('Location: http://mrw.so/', true, 301);
这行代码会向客户端浏览器发送命令,强制HTTP响应代码为301,并替换之前的报头,将重定位地址设为
http://mrw.so/。
#### 2. META 刷新转向
利用HTML标记
<meta>中的REFRESH属性,可以在特定时间后重定向到新网页。例如:<meta HTTP-EQUIV="REFRESH" CONTENT="5; URL=index.asp">
在等待5秒后,网页将通过刷新的方式重定向到
index.asp的网页。短链接网站的快速搭建
目前,许多个人短链接服务采用PHP的转向方式,并且有许多完整的PHP源码网站可供选择,便于个人搭建自己的短链接网站。Phurl是一款流行的短链接网站源码,通过PHP和MySQL实现网址缩短服务,程序体积仅为19KB,包含建库脚本和后台程序。Phurl的搭建步骤如下:
1. 将Phurl网站文件放置于支持PHP的服务器的相应目录下。
2. 在MySQL中创建一个新的数据库。
3. 导入
phurl.sql文件,建立所需的数据库表phurl_settings和phurl_urls。4. 根据自身需求修改
config.php文件中的配置信息。5. 测试功能,通过访问
index.php可以对长网址进行缩短处理,短链接则通过redirect.php的处理转向长网址所在的网页。短链接服务的转换算法
Phurl的转换算法是在本地数据库中将短码和长网址建立一一对应的关系。用户访问短链接时,后台查询对应的长网址,并通知客户端进行页面转向操作。
#### 数据表结构
-
phurl_urls数据表存储了id、url、code、alias、date_added字段;-
phurl_settings数据表仅存储last_number字段。
#### 算法实现主要函数
为了尽可能缩短短链接的字符串长度,Phurl采用了更高进制的表示规则。短码
code是通过函数generate_code($number)产生的高进制数。函数源码如下:function generate_code($number) {
$out = "";
$codes = "abcdefghjkmnpqrstuvwxyz23456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
while ($number > 53) {
$key = $number % 54;
$number = floor($number / 54) - 1;
$out = $codes[$key] . $out;
}
return $codes[$number] . $out;
}

函数中自定义了由数字和大小写字母组成的54位字符串,每个字符代表54进制中的0-53。如果用上述54进制表示,则4个字符长的短码可以表达850多万条记录,6个字符长的短码可以表达247亿多条记录。
长网址转短码的一般流程
1. 在
phurl_urls表中查找是否存在该长网址记录,有则返回对应的短码;2. 无记录则取
phurl_settings表中last_number进行高进制转换得到短码;3. 在
phurl_settings表中last_number加一并备以后使用;4. 在
phurl_urls表尾插入短码及长网址对应的新记录。根据Phurl的算法,短码无规律可言,短链接和长网址之间不存在文本上的关联关系。由于高进制对应字符串的不同,以及短链接请求的先后顺序不同,会导致同样使用Phurl的不同网站对同一长网址的处理结果有所不同。