设计短链接生成服务

很久之前就一直想做一个短链接生成服务,但一直没有短域名和机会,只好把之前设计的思路记录下来。

起因

很多在做互联网推广都会使用发短信的方式,而短信服务提供商又对短信内容限制长度,这时候就要把长链接转为短链接。当然也有其他的方式,大厂如淘宝,有自己的 app,又被腾讯限制在微信推广的情况下,它们会用特殊处理过的文字在微信推广,用户复制内容到剪贴板再打开淘宝的 app,app 就读取剪贴板的内容识别正确的商品。

下面就用时序图的方式设计一个把长链接转为短连接,已经使用短链接跳转到正确的长链接。

时序图

sequenceDiagram
    participant 浏览器
    participant 服务器
    participant 数据库
    Note right of 服务器: http://sort.cn
    浏览器->>服务器: 输入长链接
    Note right of 浏览器: http://www.baidu.com/xxxxxx
    服务器->>数据库: 获取一个唯一 id
    Note right of 服务器: xB4daqe
    数据库-->>服务器: 返回一个唯一 id
    服务器->>服务器: 生成短连接
    Note right of 服务器: http://sort.cn/xB4daqe
    服务器-->>浏览器: 返回短连接
    浏览器->>服务器: 访问 http://sort.cn/xB4daqe
    服务器->>服务器: 解析获取 id
    Note right of 服务器: xB4daqe
    服务器->>数据库: 检查 id
    数据库-->>服务器: 返回长链接
    Note right of 服务器: http://www.baidu.com/xxxxxx
    服务器-->>浏览器: 重定向
    Note right of 浏览器: http://www.baidu.com/xxxxxx