`
dbwang
  • 浏览: 57164 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

微薄短域名原理及作用

阅读更多

最近呀。微博在国内火的的”一塌糊涂“。作为技术人员对其中的短域名比较感兴趣,很好奇这么做的原因,及实现这个的原理!希望知道的进来讨论一下哈!

 

例如:http://url.cn/1zJdGX  解析以后是 http://bjwb.bjd.com.cn/html/2011-03/23/content_382746.htm

 

 

补充:

 

经过讨论这么做的好处大致:

 

1.广告效益,方便记忆!!

 

2.方便做统计和挖掘。每一次点击和引用服务提供方都有记录和跟踪。

 

3.可能也是为了避免同样的链接被大量用户引用,缩短链接长度以便节省存储空间,微薄的用户关注的都是一些热点话题,用户发的不同微薄中出现同样的链接是比较常见的。

4.存储到数据库可能是纯文本???待讨论!

 

 

实现原理:

 

基本是上通过key,value的方式进行存储。但是最终存储在nosql,还是关系数据库,需要进一步讨论》》》

 

大家继续给力哈!!

 

 

分享到:
评论
46 楼 lj30936 2011-04-11  
对程序员来说,错别字就像语法级的bug,写的时候尽量注意点,不是‘薄’,是‘勃’。。。
45 楼 猫尾摆摆 2011-04-07  
方便记忆纯属乱编,无非是微博前期140个字的限制而已。。。。。。。
44 楼 xiaojiankaka 2011-04-06  
为啥我总觉得这个“薄”字看着怪怪的~
43 楼 yizhilong28 2011-04-06  
微薄 or 微博?
42 楼 xzq2002 2011-04-05  
httpclient_bd 写道
研究过类似的一个高效的实现,当然思路非我原创,也是网上前辈们的经验

实现方式是nginx+tt+tc做转发

具体原理是nginx代理到tt的服务端口

稍微修改一下tt的源码,将tt的http协议返回的东西稍作修改, 原来返回value的地方修改为返回302的http报文,把tc里拿到的value作为location回送给浏览器,重新编译后启动TT,直接访问即可。
TC里KEY为短地址,VALUE为URL

url要有长期性,memcached的特性不适合干这事。

tc=tokyo cabinet
tt=Tokyo Tyrant

LZ有兴趣可以研究一下


这个不错,能够减少中间获取实际地址这一操作
apache不知道能实现不
41 楼 kongshanxuelin 2011-04-04  
非常简单,见我一个Demo:http://u.faqee.com/addURL.jsp,文章地址:http://cxlh.iteye.com/blog/676985
40 楼 kk15378924 2011-04-02  
我就不理解了。。你们怎么推测出的是62位换算。。。实际经过试验,是64位。最后两位分别是[和].各位可以试试sina的短连接,运气好的直接改一个字符为[或者]都可以跳转
39 楼 yujiaao 2011-04-02  
便于手机输入和转发。
38 楼 lovebanyi 2011-04-02  
省空间肯定是不可能的, 因为哪个短网址明显不是压缩算法。而是一种映射,这样的话就必然要求它要同时存储哪个长的地址。
37 楼 wmjie 2011-03-31  
denger 写道
dbwang 写道
denger 写道
風一樣的男子 写道
主要是因为微薄140限制,如果没限制,谁那么无聊搞个映射?

如果只是字数问题的话,照我说直接 <a href="http://bjwb.bjd.com.cn/html/2011-03/23/content_382746.htm" target="_blank"><url></a>, 象这样统一处理就 OK了,还搞什么短域名。


你这个存储起来需要更大的空间。连接太长啦。

我提到的这块东西。估计会更复杂。在存储里不会存html标签。例如A标签!


我知道,我是回答上面: 之所以弄短域名并不是只是因为 (微薄140限制,如果没限制,谁那么无聊搞个映射?)


从客户的角度来看,主要是为了品牌效应。
所有的微博的地址都是 t.cn 开始的域名,这是多么大的广告效应?
t.cn 推广开了以后,会成为微博的代名词。
36 楼 denger 2011-03-31  
dbwang 写道
denger 写道
風一樣的男子 写道
主要是因为微薄140限制,如果没限制,谁那么无聊搞个映射?

如果只是字数问题的话,照我说直接 <a href="http://bjwb.bjd.com.cn/html/2011-03/23/content_382746.htm" target="_blank"><url></a>, 象这样统一处理就 OK了,还搞什么短域名。


你这个存储起来需要更大的空间。连接太长啦。

我提到的这块东西。估计会更复杂。在存储里不会存html标签。例如A标签!


我知道,我是回答上面: 之所以弄短域名并不是只是因为 (微薄140限制,如果没限制,谁那么无聊搞个映射?)
35 楼 xfan1982 2011-03-31  
lotusk 写道
这个其实最主要的不是为了长度,而是为了中国特色的过滤机制,要把某些链接XX

正解
34 楼 dbwang 2011-03-31  
awuminge 写道
各位童鞋显然没有深入了解
不是因为字数限制,微博发布的链接 只要被识别为链接 只占10个字 链接只要不超过140个字符占有字数就不会超过10个字

如果发布10个链接 每个链接100个字符  试问不用短链  展现出来的将会何其丑陋


这是你的结果还是官方的结论!
33 楼 awuminge 2011-03-30  
各位童鞋显然没有深入了解
不是因为字数限制,微博发布的链接 只要被识别为链接 只占10个字 链接只要不超过140个字符占有字数就不会超过10个字

如果发布10个链接 每个链接100个字符  试问不用短链  展现出来的将会何其丑陋
32 楼 xhdwell 2011-03-30  
主要还是空间节省了,本来就140个字符,如果URL老长还能写几个字啊
31 楼 dsjt 2011-03-30  
diogin 写道
晕,代码变成表情了。表情部分是“8 )”。
这样生成的空间理论上有 2^30 约10亿个,不过随着量的增多,肯定会出现碰撞。


function shorten($url, $salt = '') {
    $base62_units = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
    $base2_unit30 = (('0x' . substr(md5($url . $salt), 0, 8)) * 1) & 0x3fffffff;
    $base62_unit6 = '';
    while ($base2_unit30 > 0) {
        $base62_unit6 .= $base62_units[$base2_unit30 & 61];
        $base2_unit30 >>= 5;
    }
    return $base62_unit6;
}

for ($i = 0; $i < 100; $i++) {
    echo shorten($i) . '<br />';
}


30 楼 luolonghao 2011-03-30  
arust 写道
denger 写道
風一樣的男子 写道
主要是因为微薄140限制,如果没限制,谁那么无聊搞个映射?

如果只是字数问题的话,照我说直接 <a href="http://bjwb.bjd.com.cn/html/2011-03/23/content_382746.htm" target="_blank"><url></a>, 象这样统一处理就 OK了,还搞什么短域名。


应该不仅仅是140限制,可能也是为了避免同样的链接被大量用户引用,缩短链接长度以便节省存储空间,微薄的用户关注的都是一些热点话题,用户发的不同微薄中出现同样的链接是比较常见的。


引入短域名原因就是因为微博字数限制,微博都是纯文本的,不方便加入HTML代码。
29 楼 dbwang 2011-03-30  
diogin 写道
核心只是一个进制转换算法。比如 PHP 实现:

function shorten($url, $salt = '') {
    $base62_units = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
    $base2_unit30 = (('0x' . substr(md5($url . $salt), 0,) * 1) & 0x3fffffff;
    $base62_unit6 = '';
    while ($base2_unit30 > 0) {
        $base62_unit6 .= $base62_units[$base2_unit30 & 61];
        $base2_unit30 >>= 5;
    }
    return $base62_unit6;
}

for ($i = 0; $i < 100; $i++) {
    echo shorten($i) . '<br />';
}

生成的短地址做 key,原地址做 value,存到一个 kv 数据库里。


恩恩。具体的算法就不想在讨论啦。怎么弄的可以。我相信sina和腾讯的算法也不一定一样!

关键是总体思路。 key,value这样方式是肯定的。但是最终落地是不是数据库就两说啦。

有可能是nosql 的实现。还有就是缓存!

另外我还比较关注。短域名的好处!!大家提了一些。大家继续补充。。。。。过几天我整理汇总哟!!!
28 楼 dbwang 2011-03-30  
liuyf 写道
还有一个重要作用是做统计和挖掘。每一次点击和引用服务提供方都有记录和跟踪。


好,这个说法有道理。赞成。不知道。sina和腾讯用到这个功能没。哈哈!
27 楼 liuyf 2011-03-30  
还有一个重要作用是做统计和挖掘。每一次点击和引用服务提供方都有记录和跟踪。

相关推荐

    新浪微博个性域名是什么.docx

    新浪微博作为中国领先的社交媒体之一,它为用户提供了许多自我表达和个性化的功能,其中包括个性域名设置。个性域名不仅是用户微博身份的标识,还是个人品牌建设的工具,对于用户在互联网中的脱颖而出具有关键意义。...

    php+mysql迷你短网址+短域名系统 V1.0_20200505

    小到只有15KB的迷你短网址+短域名系统。含白名单功能免审核,带记次,可网址密码双重加密更新有效期。性状介绍: 1. 提交网址得短网址+短域名,可设有效期1天到一年 2. 域名白名单,比如只用于大电商平台网址,可免...

    【闪灵短域名-微信QQ域名防拦截系统 v1.0】短网址在线生成系统

    闪灵短域名–微信QQ域名防拦截系统是一款以php+MySQL进行开发的短网址在线生成系统源码。 功能介绍: 1.可将长网址自动缩短为短网址,方便记忆和使用。 2.短网址默认为临时有效,可付费升级为永久有效,接入支付后可...

    短域名的网站服务器程序

    短域名的网站服务器程序是一种高效且实用的网络服务,它主要通过将长网址转化为简短易记的短链接,提供给用户更便捷的分享和访问体验。在这个项目中,我们看到涉及的技术栈主要包括MySQL数据库和PHP编程语言。下面将...

    短域名在线生成系统,可以一键生成短连接

    短域名在线生成系统是一种便捷的工具,用于将长网址转换为简洁、易记的短链接。在当前互联网环境中,短链接被广泛应用于社交媒体分享、广告推广以及数据分析等多个领域。本系统基于PHP编程语言构建,其小巧的体积...

    闪灵短域名源码-微信QQ域名防封防拦截系统.zip

    闪灵短域名源码是一款专为微信和QQ等社交平台设计的防封防拦截系统,其主要目的是解决在这些平台上分享长网址时可能遇到的被封禁或拦截的问题。源码是程序开发的基础,它包含了实现特定功能的所有代码,通过理解和...

    短域名程序

    【短域名程序】是一种用于创建和管理简短、易于记忆的网址的服务,通常用于网站推广或...对于想要学习网站开发或者短域名服务的人来说,这个程序是一个很好的实践案例,可以帮助理解Web应用程序的工作原理和架构设计。

    新浪微博开放平台接入

    5. **申请Key**:当应用准备上线,需要在新浪微博开放平台上进行域名绑定并申请Key。Key是识别应用身份的唯一标识,它使得微博服务器知道请求来自哪个应用,同时也是OAuth授权流程中的关键组成部分。 6. **线上部署...

    网络管理\域名服务器的原理和配置

    - **区域文件**:每个DNS服务器都需维护区域文件,其中包含该服务器负责的所有域名及相应数据。区域文件的设置直接关系到域名解析的准确性和速度。 - **转发器与缓存**:合理配置转发器可以提高DNS解析的效率,避免...

    闪灵短链-微信QQ域名防拦截系统 v1.0 build20231202.zip

    总的来说,"闪灵短链-微信QQ域名防拦截系统 v1.0 build20231202.zip" 包含了短链接生成、域名防拦截策略实施、源码学习、项目开发实践等多个计算机科学和技术领域的知识点,对于开发者和学习者而言具有很高的价值。...

    php可以将长网址转成短域名

    首先,我们要理解短域名服务的基本原理。它通常包含以下几个步骤: 1. **存储映射**:当用户提交一个长网址时,系统会生成一个唯一的短码(如随机字符串或自增ID),并将这个短码与长网址的对应关系存储在数据库中...

    新浪微博签名apk

    《新浪微博签名apk详解》 在移动应用开发领域,尤其是在Android和iOS平台上,应用的签名是保障应用程序安全性和完整性的关键步骤。本篇文章将详细解析“新浪微博签名apk”这一工具,帮助开发者更好地理解和使用它。...

    新浪微博客户端接入案例

    在本案例中,我们将探讨如何将新浪微博客户端接入到iOS应用中。这主要涉及到iOS开发、微博API的使用以及用户授权流程。以下是一些关键知识点: 1. **iOS开发基础**:首先,你需要熟悉Objective-C或Swift,这是iOS...

    域名工作原理

    阐述域名结构及DNS工作原理,有IPV4和IPV6域名工作原理的详细说明。

    短域名网址缩短压缩服务PHP v1.0.rar

    短域名网址缩短服务是互联网上常见的一种工具,它允许用户将长且复杂的网址转换为简短易记的短链接。这个“短域名网址缩短压缩服务PHP v1.0.rar”是一个基于PHP实现的轻量级短网址系统,适用于那些希望在不使用大型...

    老域名介绍及作用.mp4

    老域名介绍及作用.mp4

    【域名防封防拦截四合一前端源码】短网址生成+域名检测+短网址还原+域名防红

    短网址生成+域名检测+短网址还原+域名防红四合一前端源码没有功能哦~!有会后端技术的可以拿去开发用!页面还是挺漂亮的,里面还有很多子页面都非常的好看!

    Android新浪微博客户端源代码

    Android手机上的新浪微博客户端程序Java源码下载,可了解到android中的域名获取等操作,http操作,发微博的作者操作,sqlite操作和微博浏览显示操作,包括了界面到数据库和网络较综合的操作技巧。包括使用sqlite创建...

    开源的短域名服务short.zip

    short是一个开源的短域名服务,使用Node.js与MongoDB搭建,可以直接在你的Server程序中调用,也可以通过Node.js的http server模块以一个服务启动。 可以直接通过Node.js的npm进行安装: $ npm install short ...

Global site tag (gtag.js) - Google Analytics