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. uname|mv|tar -xzvf|

    $ ls CAFE-4.2.1.tar.gz mcl-latest.tar.gz mysql-5.4.3-beta-linux-i686-glibc23.tar.gz.1 orthomclSoftwa ...

  2. C语言数据转换

    1.在我们编码的时候可能一个表达式中的数字类型是不同的,所以我们的首要的工作就是要把它们转换成相同的类型,然后在进行计算.这个转换的过程就就做隐式类型转换,完全由计算机完成. 2.隐式类型转换有一定的 ...

  3. FPGA模N计数器的实现

    module ModuloN_Cntr(Clock, Clear, Q, QBAR); , UPTO = ;//计数器位数以及模数 input Clock, Clear; :]Q, QBAR; :]C ...

  4. cxf整合spring代码

    导入jar包cxf的jar包 创建实体类 package com.yhd.webservice.cxf.server.poto; public class Person { private Strin ...

  5. [LC] 318. Maximum Product of Word Lengths

    Given a string array words, find the maximum value of length(word[i]) * length(word[j]) where the tw ...

  6. Filter 中注入失败问题

    参考: https://www.cnblogs.com/digdeep/p/4770004.html?tvd https://www.cnblogs.com/EasonJim/p/7666009.ht ...

  7. Ubuntu16.04使用sublime text3编写C语言后,实现编译并自动调用bash终端运行程序

    实现编译并自动调用bash运行程序只需要新建自己的.build文件就OK 依次打开: tools->building system->new building system 后,把下面的内 ...

  8. 如何创建Hexo站点的Tags和Categories默认页面

    安装Hexo的categories生成插件 1 $ npm install hexo-generator-category --save 安装Hexo的Tags生成插件 1 $ npm install ...

  9. Spring Boot 集成 Spring Security

    1.添加依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId> ...

  10. Nginx笔记总结二:Nginx编译参数

    -prefix=                                                    安装路径-with-http_ssl_module               ...