zoukankan      html  css  js  c++  java
  • 短链服务

    示例(不可用)
    长链:http://wqigdsk.sq.com?id=2011&name=china
    短链:http://cq.cn/Rb2IDs

    原理

    将长链存入数据库并返回自增Id,然后把Id转换成62进制
    假设短码为6位,每一位由[a-z,A-Z,0-9]共62个字母组成,则共有62^6=568亿种组合,已经够用。

    在浏览器中输入上面的地址,会向http://cq.cn发送HTTP GET请求,并传短码。
    此时,在数据库中查询短码记录,结果存在重定向到长链;结果不存在,返回HTTP Status Code 404或不跳转

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

    相关问题

    1. 被恶意攻击,消耗自增Id
    同一长链返回同一短码,IP限制

    2. 短码安全问题
    在自增Id从1开始时,短码可以被推断出,可以扩展短码,增加一位随机码

    3. 同一长链短码是否应该相同
    应该相同,将长链和短码对应缓存,在转换成短码之前进行缓存匹配

  • 相关阅读:
    计划任务工具-windows
    [JavaWeb基础] 017.Struts2 和 ajax交互简介
    html5学习之路_007
    [PHP学习教程
    [PHP学习教程
    [注]还原记忆力的真面目
    理解Java对象序列化
    HashTable和HashMap的区别详解
    HDFS NameNode内存全景
    HDFS 原理、架构与特性介绍
  • 原文地址:https://www.cnblogs.com/ycm-up/p/10880342.html
Copyright © 2011-2022 走看看