首页 > 代码库 > URL与资源

URL与资源

  软件很多东西很单纯,就像学加法一样,感觉很自然就应该会或者想到...你可以认为以前的人足够的"蠢",或者认为统一一个规范有多难...

  • URL语法
  • URL快捷方式
  • 常见及有意思的方案

  注:URL就是URI,除非URN占领世界,或者看处女座写的代码,也或者你是处女座...

URL语法

  作为面向对象的程序猿,语法嘛,就是一个固定的类,有的需要set,有的可以选择set.....当然理解为规范,约束,接口也没有问题,自己选个喜欢的方式当然也没为题,不过让别人照你的想法去理解/解析URL可是要花不少钱的.....
  虽然说每个方案都会有自己独特的语法,不过大多数情况下,他们都是从下面9个部分组成的,可能是全部也可能是部分

  <scheme>://<user>:<password>@<host>:<port>/<path>;<params>?<query>#<frag>
  方案://用户:密码@主机:端口/路径;参数?查询#片段

  

   方案:就是协议,他有默认的端口,也对整个url赋予了更加丰富的意义,url作为完全暴露的"语法",很人性化的不区分方案的大小写
      用户名/密码:在小的语法也有安全机制
      主机:ip,域名或者其他可以代表ip的东西
  端口号:大多数情况下,每个方案都有自己默认的端口号
  路径:可以是实实在在的路径,也可以是对照,翻译,解析的路径,或着说这是url的主体内容吧,稍微做过web项目应该明白路径所能代表的意义,太他喵多了
  参数:输入参数,我想把它表达为配置信息,就是路径的参数
  查询:我们常说的参数
  片段:内部消化,不会传给服务器,客户端留着玩....其实就是锚点对象

     大致就是这么个情况,其中的标点符号也是必须的,如果你想申请方案,最好从这里面挑几个你喜欢的,当然如果你有更好的排序方式/想法,可以致电相关部门:)

   基本上看到这,就已经算是掌握url了,接下来在看的,就纯属业余爱好或者虐菜试题了:)
比如用户名与密码的规则,这关系到如何解析,再比如传输关键字符的处理,当然了,不知道也无所谓这些东西,早就被你使用的框架整好了,尽管url已经被封装的似乎知道个大概就可以了
说个本屌遇见过的麻烦事,当年传数据的时候有个name为#NBxx之类的参数怎么都穿不过去....我想你一定知道原因:)

字符串的解析

  URL作为通用可移植的文本型对象(编的),就意味着他必须能安全可靠的被识别,所以使用通用的的US-ASCII(7个字节)也是必然的状况,至于超出部分,当然就得靠转码了,当然对于部分关键字,如果并不想让他实现自己的功能的话,转移也是很有必要的(再次强调看看传递参数name=A#BC能收到什么--)

常见及有意思的方案

http:大多数人还是靠这货认识url的吧...
ftp:一个比http还要古老的协议
pop/pop3:foxmail上选择有木有
telnet:学黑客的时候,有木有
nfs/hdfs:文件管理系统,熟悉不?
svn:不会没有用过吧--
javascript:在你的浏览器中输入javascript:alert(1);void 0;试试:),是不是感觉他就是firebug实现的原理?:)
总之,类似的东西多了去了,URL,就这么简单

总结

1.url由9个左右的部分组成
2.作为通用型格式,url传递以ASCII为准,对于拓展字符,以及关键字的使用,均需要转移
3.关键字符就是保留和限制字符

 

URL与资源