URL及short URL短网址

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





原文地址:https://www.cnblogs.com/codetravel/p/4548144.html