二维码短连接生成思路

一、前言

有时需要用户扫描一个二维码,然后跳转到自己服务器的前端页面(当然跳转到后端url也行)。

二维码本质就是一个url,手机扫码后、就去访问这个url。

但是,如果url过长(地址过于复杂、参数过多),生成的二维码就会很密,手机扫码后解析和跳转花费的时间也会很长,用户体验就会很差。

此时,就需要想办法用一个短连接来代替长连接,生成的二维码密度也会小些,手机扫码后就能快速跳转。

二、思路

1.本人的系统中,有一个数据库表short_url,里面主要有4列:

id
hash_code #存储长连接md5加密后得到的串
true_url #存储长连接
create_time

其中,true_url存储原本要跳转的长连接;
hash_url存储对应的短连接,是使用DigestUtils.md5Hex(true_url)这个方法,把长连接进行md5加密、得到的串存入hash_code里。

2.生成二维码时,找一个后台接口,然后传一个参数hash_code,然后就用这个地址生成二维码。(这个地址很短,可以算短链接)
例如:

http://localhost:8080/hash?code=qlwekjradioufqwe

这个url就是短连接二维码地址。

3.扫描这个短链接二维码时,就先跳转到/hash后台接口,后台接口获取到code=qlwekjradioufqwe,然后查询数据库表short_url:

id    hash_code           true_url
1     qlwekjradioufqwe    http://localhost:8080/a/b/c/d/e/f?a=1&b=2&c=3

根据hash_code查询到true_url,然后重定向到这个长连接即可http://localhost:8080/a/b/c/d/e/f?a=1&b=2&c=3(当然实际的长连接可能会非常长)

4.查询数据库的操作,可以用redis当中间件,减小数据库压力。

三、总结

目前是因为手机扫描比较复杂的二维码(长连接)解析较慢、用户体验差,所以才用短链接二维码来实现,二维码简单些手机扫码解析会快很多。

后续后台系统从短连接重定向到长连接会很快,比直接扫长连接二维码会快很多。

因此才用短连接二维码代替长连接二维码,优化用户体验。

猜你喜欢

转载自blog.csdn.net/BHSZZY/article/details/130749029