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 相关文章推荐
JS实现浏览器菜单命令
Sep 05 Javascript
分享JavaScript获取网页关闭与取消关闭的事件
Dec 13 Javascript
js实现省市联动效果的简单实例
Feb 10 Javascript
JavaScript运行时库属性一览表
Mar 14 Javascript
javascript中this指向详解
Apr 23 Javascript
jQuery页面加载初始化的3种方法(推荐)
Jun 02 Javascript
js数字计算 误差问题的快速解决方法
Feb 28 Javascript
Form表单上传文件(type="file")的使用
Aug 03 Javascript
vue-cli脚手架引入图片的几种方法总结
Mar 13 Javascript
vue.js使用v-pre与v-html输出HTML操作示例
Jul 07 Javascript
Vue中对拿到的数据进行A-Z排序的实例
Sep 25 Javascript
JS中appendChild追加子节点无效的解决方法
Oct 14 Javascript
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 巧用数组降低程序的时间复杂度
2010/01/01 PHP
php显示页码分页类的封装
2017/06/08 PHP
javascript中的window.location.search方法简介
2013/09/02 Javascript
JS 毫秒转时间示例代码
2013/09/22 Javascript
node.js中的fs.unlink方法使用说明
2014/12/15 Javascript
jQuery+CSS实现的网页二级下滑菜单效果
2015/08/25 Javascript
Nodejs实战心得之eventproxy模块控制并发
2015/10/27 NodeJs
jquery $.trim()去除字符串空格的实现方法【附图例】
2016/03/30 Javascript
gulp加批处理(.bat)实现ng多应用一键自动化构建
2017/02/16 Javascript
JavaScript实现图片拖曳效果
2017/09/08 Javascript
Vue官网todoMVC示例代码
2018/01/29 Javascript
vue使用v-if v-show页面闪烁,div闪现的解决方法
2018/10/12 Javascript
使用JavaScript保存文本文件到本地的两种方法
2019/01/22 Javascript
pyqt和pyside开发图形化界面
2014/01/22 Python
Python基于checksum计算文件是否相同的方法
2015/07/09 Python
Python可变参数用法实例分析
2017/04/02 Python
python合并同类型excel表格的方法
2018/04/01 Python
对IPython交互模式下的退出方法详解
2019/02/16 Python
python实现微信自动回复及批量添加好友功能
2019/07/03 Python
django基于存储在前端的token用户认证解析
2019/08/06 Python
python实现的多任务版udp聊天器功能案例
2019/11/13 Python
详解Pycharm出现out of memory的终极解决方法
2020/03/03 Python
python和JavaScript哪个容易上手
2020/06/23 Python
Numpy中np.random.rand()和np.random.randn() 用法和区别详解
2020/10/23 Python
Kivari官网:在线购买波西米亚服装
2018/10/29 全球购物
中文系师范生自荐信
2013/10/01 职场文书
工程安全员岗位职责
2014/03/09 职场文书
初三班主任寄语大全
2014/04/04 职场文书
政府法律服务方案
2014/06/14 职场文书
学校个人对照检查材料
2014/08/26 职场文书
学校师德师风自我剖析材料
2014/09/29 职场文书
街道党工委党的群众路线教育实践活动对照检查材料思想汇报
2014/10/05 职场文书
2014年个人技术工作总结
2014/12/08 职场文书
辞职信格式模板
2015/02/27 职场文书
MySql子查询IN的执行和优化的实现
2021/08/02 MySQL
如何利用golang运用mysql数据库
2022/03/13 Golang