专栏首页earthchen的专栏短网址原理及实现

短网址原理及实现

短网址原理及实现

原理

首先,系统把一个长的地址,用一个算法转换成一个短码(或者系统生成一个唯一的id号),然后系统将这个短码和url的映射关系存储到数据库或者缓存中

当用户访问生成的短网址的时候,系统从数据库或者缓存中查询到的对应的长url地址,

请求通过http 301(或者302)跳转到对应的长url

301 是永久重定向,302 是临时重定向。短地址一经生成就不会变化,所以用 301 是符合 http 语义的。同时对服务器压力也会有一定减少。 但是如果使用了301,我们就无法统计到短地址被点击的次数了。而这个点击次数是一个非常有意思的大数据分析数据源。能够分析出的东西非常非常多。所以选择302虽然会增加服务器压力,但是我想是一个更好的选择。

生成算法

对长url的转换算法可以自定义,主要目的就是将长字符串变短,并且要求算法不可逆

简单来讲md5都可以,其他复杂或者更优算法都可以自行实现

但是推荐使用分布式自增算法,系统生成一个id,将这个id与长url对应存储

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Python2和Python3的区别简单总结

    Python是一种新的计算机语言,也是最近两年才开始大火的一种语言,它够优雅,写起来可以随心所欲,不用担心没有定义,没有声明这些其他计算机语言都需要考虑的问题,...

    用户1637228
  • 深入理解java虚拟机学习笔记 -- 1

    redis作为内存非关系型数据库,是一种key - value 缓存产品,但它同时还支持数据持久化,常常和一些老牌关系型数据库配合使用 下文将作为学习笔记介绍一...

    用户1637228
  • 几种排序算法

    通常堆是通过一维数组来实现的。在阵列起始位置为0的情况中 (1)父节点i的左子节点在位置(2i+1); (2)父节点i的右子节点在位置(2i+2); (3)子节...

    用户1637228
  • 算法-统计数字(中等)

    在 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12],我们发现 1 出现了 5 次 (1, 10, 11, 12)

    OBKoro1
  • 一步步教你学KNN

    k-近邻(kNN,k-NearestNeighbor)算法是一种基本分类与回归方法,我们这里只讨论分类问题中的 k-近邻算法。k-近邻算法的输入为...

    伏草惟存
  • 风云突变,世界电子版图大漂移

    大概是从2011年开始,日系电子企业开始了全面溃败,转眼四年过去,中国企业的格局都更新换代了几次,日本那边依旧处於泥泞之中,无法自拔。现在,关于日系...

    机器人网
  • VC6下OpenGL 开发环境的构建外加一个简单的二维网络棋盘绘制示例

    Zoctopus
  • 基于 Linux 安装 web 服务及基本配置

    在网络环境中,web 服务无疑是最为流行的应用系统。有了 web 站点,企业可以充分展示自己的作品,宣传企业形象。web 站点还为企业提供了与客户交流、电子商务...

    小手冰凉
  • IntelliJ IDEA 新手使用教程,2019图文版!

    如果说IntelliJ IDEA是一款现代化智能开发工具的话,Eclipse则称得上是石器时代的东西了。

    用户5224393
  • IntelliJ IDEA 2019 从入门到上瘾 图文教程!

    如果说IntelliJ IDEA是一款现代化智能开发工具的话,Eclipse则称得上是石器时代的东西了。

    Lemon黄

扫码关注云+社区

领取腾讯云代金券