链接分享的简单思考

链接分享可以说是一个非常常用的功能了,本次网页链接分享做一些简单的探索;

基本链接分享

最基本的链接分享功能很简单,
场景:用户通过发送链接给其他人分享当前页面
解决方案:这种分享不涉及任何逻辑,直接复制浏览器地址栏中的链接即可;

带跳转功能的链接

  • 场景:有一个页面很长,用户滚轮滚了半天到了一个页面的中部,希望将当前的页面以及当前页面的位置分享给其他人;

  • 分析在页面中添加适当的锚点, 也就是在适当的位置为 html标签设置id,如下

    <p id="test"></p>
    

这样就可以通过在链接默认添加 ‘#’+id作为跳转链接了
http://url.com#test

  • 解决方案:预先在页面中设置好锚点,分享时在分享链接中加上’#’+id,这种也一般直接复制浏览器地址栏链接即可

带页面逻辑的链接分享

  • 场景:用户打开了一个据由较为复杂逻辑的页面,进行一些如条件筛选,编辑等操作后,希望将编辑后的页面分享给其他用户
  • 分析:
    • 这个场景下,一般都需要有一个账号密码系统来保存用户的操作结果,那么就意味着,其他用户无法访问当前用户的操作数据(否则用户隐私还如何保障呢?)
    • 更为复杂的是,用户分享了页面后,继续进行其他操作,但是希望分享之后的操作不会影响之前分享的页面
  • 思路:既然有了账号系统,并且页面的内容是随着用户的操作而改变的,那么我们可以将链接分为两部分:页面操作,在用户分享页面时,将当前的操作行为记录下来作为参数添加到链接中,这样其他用户打开链接时,自动重复一遍该操作即可
  • 缺点:若页面的操作行为较为复杂,链接参数会较多,导致链接较长,影响用户体验

带页面逻辑的短链接分享

  • 场景:既需要携带用户操作行为,又希望有一个较短的链接
  • 思路:
    • 可以先使用一个长链接,然后将该长连接存入数据库,将数据库key值作为链接参数, 打开链接时通过数据库Key值获取真实的长链接
      http://url.com?key=123456
    • 也可以通过将用户操作记录下来,存入数据库中,然后打开链接时使用key值获取用户操作记录

    这里提到的用户操作记录,本质上是页面逻辑的参数

  • 注意:这里记录用户操作时,不要使用递增的数据库记录数,这样会导致链接中的参数较为有规律,容易导致信息泄露,简单点的办法是使用用户操作记录的信息生成hash值作为key值
  • 拓展:这样生成的链接还是较长的,如 www.baidu.com?key=12345678,可以再短一些吗?答案是可以;我们生成的hash值,本质上就是一个10进制的数值,若我们将他转为更高进制的表示方式,那么单个字符可以表示的数值就越大,对应生成的高进制hash值就越短,比如可以使用 0-9a-zA-Z作为62进制编码,将hash值转为一个更短的字符串

带账号验证的链接分析

  • 场景: 用户分享链接后需要密码进行验证,如百度网盘
  • 思路:基本思路和上面的 带页面逻辑的短链接分享一致,只是分享的链接先定向到一个公共的验证页面,然后这个验证页面依据参数跳转到真实的页面
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章