HTML5技术

URL解析 - 妙音天女

字号+ 作者:H5之家 来源:H5之家 2017-03-27 16:02 我要评论( )

参考 博文 :【基础进阶】URL详解与URL编码 一、URI vs URL URI:(Uniform Resource Identifier 统一资源 标识 符)。 URL : (Uniform/Universal Resource Locator 统一资源 定位 符 ) 。 关系: 二、URL URL(Uniform Resource Locator 统一资源定位器) 地址

参考博文:【基础进阶】URL详解与URL编码

   

一、URI vs URL

URI:(Uniform Resource Identifier 统一资源标识符)。

URL(Uniform/Universal Resource Locator 统一资源定位)

   

关系:

  •    

    二、URL

  • URL(Uniform Resource Locator 统一资源定位器) 地址用于描述一个网络上的资源
  • 基本格式

    protocol://hostname[:port]/pathname[;url-params][?search][#hash]

  • protocol:指定低层使用的协议
  • protocol

    访问

    用于...

    http

    超文本传输协议

    以 开头的普通网页。不加密。

    https

    安全超文本传输协议

    安全网页,加密所有信息交换。

    ftp

    文件传输协议

    用于将文件下载或上传至网站。

    file

      

    您计算机上的文件。

    (host=hostname+port)

  •    

     

    3. 例子:

    ;id=8079?name=sviergn&x=true#stuff

    Schema: http

    host.domain:

    path: /sj/test

    URL params: id=8079

    Query String: name=sviergn&x=true

    Anchor: stuff

       

     

    三、解析URL

  • 目的:从URL中提取需要的元素,如host、请求参数等
  • 通常做法:正则匹配相应字段
  • ),再加上一些正则(见正则表达式

  •  

    function parseURL(url) { a = document.createElement('a'); a.href = url; { source: url, protocol: a.protocol.replace(':',''), hostname: a.hostname, port: a.port, pathname: a.pathname, segments: a.pathname.replace(/^\//,'').split('http://www.cnblogs.com/'),//先把pathname开头的/去掉,再把剩余的根据/进行分割 file: (a.pathname.match(/([^/?#]+)$/i) || [,''])[1],//若pathname末尾包含不带/?#的捕获组,则其为filename;否则,filename为空字符串 search: a.search, params: (function(){ var ret = {}; var seg = a.search.replace(/^\?/,'').split('&'); var len = seg.length; for (var i = 0;i<len;i++) { if (!seg[i]) { continue; } var s = seg[i].split('='); ret[s[0]] = s[1]; } return ret; })(), hash: a.hash.replace('#','') }; }

     

    使用方法:

    var myURL = parseURL('http://abc.com:8080/dir/index.html?id=255&m=hello#top'); myURL.source; // 'http://abc.com:8080/dir/index.html?id=255&m=hello#top' myURL.protocol; // 'http' myURL.hostname; // 'abc.com' myURL.port; // '8080' myURL.pathname; // '/dir/index.html' myURL.segments; // Array = ['dir', 'index.html'] myURL.file; // 'index.html' myURL.search; // '?id=255&m=hello' myURL.params; // Object = { id: 255, m: hello } myURL.hash; // 'top'

     

     

     

     

    1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

    相关文章
    • URL相关Web APIs - 妙音天女

      URL相关Web APIs - 妙音天女

      2017-03-26 18:02

    • URL编码参考手册 - 妙音天女

      URL编码参考手册 - 妙音天女

      2017-03-26 18:01

    • HTTP状态码 - 妙音天女

      HTTP状态码 - 妙音天女

      2017-03-25 13:01

    • 开源的.NET定时任务组件Hangfire解析 - 彭泽0902

      开源的.NET定时任务组件Hangfire解析 - 彭泽0902

      2017-03-22 13:00

    网友点评
    /