二维码已经印刷并公布在外后,URL需要更改怎么办?

二维码是市场宣传的一个重要工具,对于用户交互来说直观简便。二维码对应的url往往是一一对应的,但实际企业/组织应用中随着时间的变化,经办人等客观因素的变化,url往往出现了变化,这对于已经印刷或公布在外的二维码是一种浪费,更重要的会给市场宣传带来影响。如何解决这个问题?

短链接

解决这个问题来使用短链接就是一个很好解决路径。举例:
https://xfu.biz/C9r6 生成二维码,这里的短链接地址https://xfu.biz/C9r6和二维码图片是不变的,但短链接对应的真实URL地址:https://www.w3school.com.cn/jquery/jquery_hide_show.asp是可以随意进行更换的,重新进行绑定的。

URL组成

URL的组成格式: protocal://hostname[:port]/path/[;parameters][?query][#fragment]

  • protocol 协议,常用的协议是http hostname 主机地址,可以是域名,也可以是IP地址 port 端口
  • http协议默认端口是:80端口,如果不写默认就是:80端口 path 路径 网络资源在服务器中的指定路径 parameter 参数
  • 如果要向服务器传入参数,在这部分输入 query 查询字符串 如果需要从服务器那里查询内容,在这里编辑 fragment 片段
    -网页中可能会分为不同的片段,如果想访问网页后直接到达指定位置,可以在这部分设置

这里又会碰到一个问题,一般网提供的短链接服务是无需登录的,也就是任何人可以针对任何真实URL来生成短链接及对应二维码。如何确保此短链接及其二维码进行重新绑定新的真实URL是授权或授意的呢?这里就引出一个短链接及其对应二维码的认领归属问题。毫无疑问解决归属问题是针对注册用户而言,经过归属认领的用户可以URL的重新绑定。

放弃的解决方案

注册用户,实现短链接及对应二维码的认领归属其实是通过真实URL对应主域名(根域名/一级域名)的归属认证来实现的。举例:
https://xfu.biz/C9r6 及其二维码,对应真实地址:https://www.w3school.com.cn/jquery/jquery_hide_show.asp。
针对其主域名w3school.com.cn(非www.w3cschool.com.cn)系统自动生成_dnaauth.xfunction:txt:随机码的临时记录(缓存保留30分钟),要求用户在其域名解析中增加一条对应的TXT记录后,再由系统解析DNS 。若解析结果与缓存记录一致,即判断此主域名属于此用户。
至此,系统中此域名的所有真实URL对应的短链接和二维码都将属于该用户,也就是该用户拥有针对这些资源的再次绑定真实URL。

如何在hostname中提取主域名,这里也是问题,网路上有很多这方面的正则表达式解说,但多数在域名后缀上考虑不完整。推荐 https://github.com/lupomontero/psl 这个项目。

以上归属认领方案还是放弃了,主要是其限定在其所有域名内使用,降底了使用范围。

解决方案

还是引入注册登录用户的背景,原数据结构中,主要字段仅biz_link_id,biz_link_url。
再增加biz_user_id, 可以为null,同时与biz_link_url组合成唯一索引。

  • 未登录用户,可以新生成短链接,biz_user_id都为null,biz_link_url保持唯一。
  • 登录用户,也可以新生成短链接,在其biz_user_id值下,biz_link_url保持唯一。
  • 不同biz_user_id间,biz_user_link并不是唯一的。

如此针对注册登录用户就可以对属于自己的短链接及其二维码进行重新绑定了。

以上目前仅是思路,拟打算在xfunction-html中实现。

已经实现具体请查看项目xfunction-html

DEMO 请登录使用哦

现有的UI框架不调整,只是针对登录用户在原页面上增加历史生成记录。
二维码已经印刷并公布在外后,URL需要更改怎么办?_第1张图片

你可能感兴趣的:(IT)