Javascript URI 解析介绍


Posted in Javascript onMarch 15, 2015

解析URI是一个有意思的东西,之前没有意识到,原来这东西也可以这么复杂。

URI

在维基百科中对于URI的解释是这样子的:

 在计算机术语中,统一资源标识符(Uniform Resource Identifier,或URI)是一个用于标识某一互联网资源名称的字符串。 该种标识允许用户对网络中(一般指万维网)的资源通过特定的协议进行交互操作。URI由包括确定语法和相关协议的方案所定义。

引自网络上对于URI组成的解释,而这些可以在稍后对于URI的解析中看出来。

URI一般由三部分组成:

1.访问资源的命名机制。
2.存放资源的主机名。
3.资源自身的名称,由路径表示。

或者可以说是这样子,两者看上去是一致的。

URL的格式由下列三部分组成:

1.协议(或称为服务方式)
2.存有该资源的主机IP地址(有时也包括端口号)
3.主机资源的具体地址。,如目录和文件名等

URI解析

 “解析”一个URI意味着将一个相对URI引用转换为绝对形式,或者通过尝试获取一个可解引URI或一个URI引用所代表的资源来解引用这个URI。文档处理软件的“解析”部分通常同时提供这两种功能。

Javascript URI解析

简单地以博客中的搜索JS为例,下面就是其的URL,

https://3water.com/search/?q=js&type=
然后便有了

 var parser = document.createElement('a');

 parser.href = "https://3water.com/search/?q=js&type="

我们便可以知道其的协议、端口号、主机、具体地址等
 parser.protocol; 

 parser.host;

 parser.pathname;

 parser.search;

返回的结果便是
 protocol:http

 host:3water.com

 pathname:/search/

 search:?q=js&type=

上面的结果加出来,便是一个完整的URI。只是对于parser.search这部分不是很理解,对于?号而言,应该是参数,用于搜索的参数。

如果是对就于一个邮件的URI来说,假设URI是

 mailto:h@3water.com?subject=hello

 

那么
 var parser = document.createElement('a');

 parser.href = "mailto:h@3water.com?subject=hello";
 > parser.protocol

 "mailto:"

 > parser.pathname

 "h@3water.com"

 > parser.search

 "?subject=hello"

 
Javascript 相关文章推荐
使用CSS和jQuery模拟select并附提交后取得数据的代码
Oct 18 Javascript
jQuery中even选择器的定义和用法
Dec 23 Javascript
JS模式之简单的订阅者和发布者模式完整实例
Jun 30 Javascript
Vue.js报错Failed to resolve filter问题的解决方法
May 25 Javascript
Bootstrap布局之栅格系统详解
Jun 13 Javascript
浅谈javascript运算符——条件,逗号,赋值,()和void运算符
Jul 15 Javascript
初识简单却不失优雅的Vue.js
Sep 12 Javascript
BootStrap Table后台分页时前台删除最后一页所有数据refresh刷新后无数据问题
Dec 28 Javascript
Vue动态获取width的方法
Aug 22 Javascript
JavaScript常用工具函数汇总(浏览器环境)
Sep 17 Javascript
基于elementUI竖向表格、和并列的案例
Oct 26 Javascript
Vue 简单实现前端权限控制的示例
Dec 25 Vue.js
PHP+jQuery+Ajax实现多图片上传效果
Mar 14 #Javascript
jQuery oLoader实现的加载图片和页面效果
Mar 14 #Javascript
jQuery实现购物车数字加减效果
Mar 14 #Javascript
jQuery+PHP实现动态数字展示特效
Mar 14 #Javascript
jQuery+slidereveal实现的面板滑动侧边展出效果
Mar 14 #Javascript
jQuery+jRange实现滑动选取数值范围特效
Mar 14 #Javascript
jQuery实现加入购物车飞入动画效果
Mar 14 #Javascript
You might like
php有道翻译api调用方法实例
2014/12/22 PHP
ecshop实现smtp发送邮件
2015/02/03 PHP
Smarty最简单实现列表奇偶变色的方法
2015/07/01 PHP
深入探究PHP的多进程编程方法
2015/08/18 PHP
thinkPHP订单数字提醒功能的实现方法
2016/12/01 PHP
PHP使用mysqli操作MySQL数据库的简单方法
2017/02/04 PHP
javascript String 的扩展方法集合
2008/06/01 Javascript
javascript 数组学习资料收集
2010/04/11 Javascript
jquery ajax 同步异步的执行示例代码
2010/06/23 Javascript
再谈javascript图片预加载技术(详细演示)
2011/03/12 Javascript
JavaScript实现文字与图片拖拽效果的方法
2015/02/16 Javascript
JavaScript实现获得所有兄弟节点的方法
2015/07/23 Javascript
深入理解jQuery中的事件冒泡
2016/05/24 Javascript
Vue.js每天必学之过滤器与自定义过滤器
2016/09/07 Javascript
jQuery Validate插件自定义验证规则的方法
2016/12/27 Javascript
JavaScript实现图片瀑布流和底部刷新
2017/01/02 Javascript
js实现简易垂直滚动条
2017/02/22 Javascript
SpringMVC简单整合Angular2的示例
2017/07/31 Javascript
axios如何取消重复无用的请求详解
2019/12/15 Javascript
vue 查看dist文件里的结构(多种方式)
2020/01/17 Javascript
[02:41]《西雅图我们来了》2015国际邀请赛出征全记录
2015/07/23 DOTA
Python实现二分法算法实例
2015/02/02 Python
Python探索之Metaclass初步了解
2017/10/28 Python
浅谈Python黑帽子取代netcat
2018/02/10 Python
PyQt5实现无边框窗口的标题拖动和窗口缩放
2018/04/19 Python
对numpy中的transpose和swapaxes函数详解
2018/08/02 Python
扩展Django admin的list_filter()可使用范围方法
2019/08/21 Python
Python调用Windows命令打印文件
2020/02/07 Python
通过cmd进入python的步骤
2020/06/16 Python
南京软件公司的.net程序员笔试题
2014/08/31 面试题
教师专业自荐书范文
2014/02/10 职场文书
农村婚庆主持词
2015/06/29 职场文书
2016年“七一建党节”广播稿
2015/12/18 职场文书
2016新教师岗前培训心得体会
2016/01/08 职场文书
Win11如何修改dns?Win11修改dns图文教程
2022/01/18 数码科技
Java实现字符串转为驼峰格式的方法详解
2022/07/07 Java/Android