URL,uniform resource locator,经常被称为网址,尤其是在使用HTTP的时候。通常是一个指向某个资源的字符串。

 
URLs经常被用于网页(http),但也可以用于文件传输(ftp),email(mailto)等等。
 

语法

scheme://domain:port/path?query_string#fragment_id
 
   scheme name:
    通常被认为是某种协议,定义了资源被如何获得。比如http,https,ftp,file等。大小写不敏感,但是经常以小写形式出现。
 
    host:
    通常以域名(domain name)或者IP地址提供。当以IPv6形式提供时,需用[]括起。例如,[db8:0cec::99:123a]。使用域名大小写不敏感,因为DNS大小写不敏感。http://www.baidu.com 和HTTP://WWW.BAIDU.COM  表示同一个网址。 
 
    port number:
    可选项。如果忽略,协议的默认端口将被使用。
 
    path:
    path被用来指定请求资源的位置。大小写敏感,因为在一个系统中,目录是大小写敏感的。
 
    query string:
    传递给web server中运行的程序(比如CGIs)。可以包含以符号'&'分隔的键值对,比如:
    ?first_name=John&last_name=Doe
 
    fragment identifier:
    指定资源或者文档中的位置。特别是在HTML中,使用锚标记来定位页面中的某个位置。比如一个页面中的章节名。
 

short URL短网址

短网址是一种使URL变短而仍指向原来的页面的技术。可以基于HTTP重定向技术来实现。
 
在新浪微博或者微信中可以发现大量的短网址,比如http://t.cn/R2X9KVS  ,又或者http://b0m.l.mob.com/ZS1kR,主要是因为像微博这种平台的字数限制以及在移动端浏览的时候能够更加美观。
 
百度http://dwz.cn/及新浪http://sina.lt/ 提供短网址生成还原服务。
 

短网址技术细则

每个长网址都关联一个唯一的key(unique key),比如上面的网址http://t.cn/R2X9KVS 中的key就是R2X9KVS。发给浏览器的重定向指令HTTP 头部的状态码可以是301,302或者307。
 
key可以基于base 36(即36进制)生成(26个字母+10个数字),在这种情况下,在生成序列中的每个字符将会是0,1,2,..,9,a,b,c..y,z.如果考虑大小写,可以考虑base 62(即62进制)(26+26+10)。使用hash 函数或者随机生成数来产生key,这样生成的key将会变得不可预测。
 

参考资料:

Wikipedia

URL及short URL短网址的更多相关文章

  1. PHP调用百度api生成短网址&根据短网址恢复长网址

    接口api文档地址:http://dwz.cn/#/apidoc?_k=i9ev5p 代码demo header("Content-type: text/html; charset=utf- ...

  2. 短网址(short URL)系统的原理及其实现

    短网址(short URL)系统的原理及其实现 https://hufangyun.com/2017/short-url/?hmsr=toutiao.io&utm_medium=toutiao ...

  3. short URL 短网址实现原理剖析

    short URL 短网址实现原理剖析 意义,简短便于分享,避免出现超长 URL 的字符长度限制问题 原理分析, 使用 HashMap 存储对应的映射关系 (长度不超过7的字符串,由大小写字母加数字共 ...

  4. 用PHP实现URL转换短网址的算法示例

    短网址就是把一个长的地址转换在超级短的网址,然后访问短网址即可跳转到长网址了,下面来看用PHP实现URL转换短网址的算法与例子. 短网址(Short URL) ,顾名思义就是在形式上比较短的网址.在W ...

  5. C#如何实现url短地址?C#短网址压缩算法与短网址原理入门

    c# url短地址压缩算法与短网址原理的例子,详细介绍了短网址的映射算法,将长网址md5生成32位签名串,分为4段,每段8个字节,然后生成短网址,具体见文本实例. 短网址映射算法: 将长网址md5生成 ...

  6. 【转】C# URL短地址压缩算法及短网址原理解析

    这篇文章主要介绍了C# URL短地址压缩算法及短网址原理解析,本文重点给出了算法代码,需要的朋友可以参考下 短网址应用已经在全国各大微博上开始流行了起来.例如QQ微博的url.cn,新郎的sinaur ...

  7. URL短网址生成算法原理和php实现案例

    短网址(Short URL),顾名思义就是在形式上比较短的网址. 短链接的好处:1.内容需要:2.用户友好:3.便于管理为什么要这样做的,原因我想有这样几点:微博限制字数为140字一条,那么如果我们需 ...

  8. 如何做系列(4)-微博URL短网址生成算法原理(java版、php版实现实例)

    短网址(Short URL),顾名思义就是在形式上比较短的网址.通常用的是asp或者php转向,在Web 2.0的今天,不得不说,这是一个潮流.目前已经有许多类似服务,借助短网址您可以用简短的网址替代 ...

  9. URL短网址系统的算法设计及实践

    在通常情况下,URL是由系统生成的,通常包括URI路径,多个查询参数,可以对参数进行加密和解密.当人们要分享某个URL,比如短信,邮件,社交媒体,这就需要短URL. 而短网址,顾名思义就是在长度上比较 ...

随机推荐

  1. 点分治练习——BZOJ 2152

    做的第二道点分治的题目,比较裸,算是模板题吧(感觉比之前那题还简单点. 题目:BZOJ 2152 聪聪可可 题目大意:给出一棵树,求树上两点间长度为3的倍数(0也算)的路径数. 解题思路: 基本和PO ...

  2. 四、RabbitMQ Exchange类型

    RabbitMQ整体上是一个生产者与消费者模型,主要负责接收.存储和转发消息.可以把消息传递的过程想象成:当你将一个包裹送到邮局,邮局会暂存并最终将邮件通过邮递员送到收件人的手上,RabbitMQ就好 ...

  3. rocket mq 入门文档

    原文地址: http://jm.taobao.org/2017/01/12/rocketmq-quick-start-in-10-minutes/ 感谢原作者 十分钟入门RocketMQ 本文首先引出 ...

  4. 整理struct sockaddr和struct sockaddr_in

    struct sockaddr定义在/usr/include/linux/socket.h struct sockaddr { unsigned short ss_family; - } struct ...

  5. 林轩田机器学习基石笔记2—Learning to Answer Yes/No

    机器学习的整个过程:根据模型H,使用演算法A,在训练样本D上进行训练,得到最好的h,其对应的g就是我们最后需要的机器学习的模型函数,一般g接近于目标函数f.本节课将继续深入探讨机器学习问题,介绍感知机 ...

  6. Java IO: 异常处理

    原文链接 作者:Jakob Jenkov 译者: 李璟(jlee381344197@gmail.com) 流与Reader和Writer在结束使用的时候,需要正确地关闭它们.通过调用close()方法 ...

  7. jenkins使用(2)-配置项目代码的3种方式

    1.通过cmd命令直接进入项目代码的文件夹运行,注意路径中不要有中文 2.代码放到工作区:从本地复制项目代码到工作区目录下 代码结构的优化 3.代码连接git或svn,实时更新代码 svn检出 然后上 ...

  8. kendoUI 免费部分开发部分经验。

    kendo分多个版本,核心UI免费版.NET,JAVA,PHP对应的前后端开发版. 基础免费版开放的UI经多个测试,与收费封装的UI并无区别,收费版提供了后端代码和前端封装语法,使不懂JS前端的也可简 ...

  9. SpringMVC学习笔记六:类型转换器及类型转换异常处理

    SpringMVC内部有类型转换器,当从Request中获取参数后,放入Controller中时,会根据Controller中指定的类型进行自动转换,当指的类型SpringMVC不能自动转换时,就需要 ...

  10. npm(classnames) 更灵活使用类名

    npm install classnames --save import classNames from 'classnames'; const inputCls = classNames({ [st ...