二維碼已經印刷並公佈在外後,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框架不調整,只是針對登錄用戶在原頁面上增加歷史生成記錄。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章