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 相关文章推荐
根据一段代码浅谈Javascript闭包
Dec 14 Javascript
js用闭包遍历树状数组的方法
Mar 19 Javascript
JS 打印界面的CSS居中代码适用所有浏览器
Mar 19 Javascript
JavaScript的类型、值和变量小结
Jul 09 Javascript
AngularJs 弹出模态框(model)
Apr 07 Javascript
基于JavaScript实现回到页面顶部动画代码
May 24 Javascript
浅析JavaScript动画模拟拖拽原理
Dec 09 Javascript
layui前段框架日期控件使用方法详解
May 19 Javascript
很棒的vue弹窗组件
May 24 Javascript
jquery动态添加以及遍历option并获取特定样式名称的option方法
Jan 29 jQuery
JS中==、===你分清楚了吗
Mar 04 Javascript
原生JavaScript实现进度条
Feb 19 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 中的str_replace 函数总结
2007/04/27 PHP
PHP 模拟$_PUT实现代码
2010/03/15 PHP
yii框架配置默认controller和action示例
2014/04/30 PHP
CI框架常用方法小结
2016/05/17 PHP
Js 获取当前日期时间及其它操作实现代码
2021/03/04 Javascript
分页栏的web标准实现
2011/11/01 Javascript
JS页面延迟执行一些方法(整理)
2013/11/11 Javascript
Jquery性能优化详解
2014/05/15 Javascript
JQuery CheckBox(复选框)操作方法汇总
2015/04/15 Javascript
jquery正则表达式验证(手机号、身份证号、中文名称)
2015/12/31 Javascript
很不错的两款Bootstrap Icon图标选择组件
2016/01/28 Javascript
JavaScript正则表达式小结(test|match|search|replace|split|exec)
2016/12/08 Javascript
JavaScript使用正则表达式获取全部分组内容的方法示例
2017/01/17 Javascript
基于Vue框架vux组件库实现上拉刷新功能
2017/11/28 Javascript
JavaScript循环遍历你会用哪些之小结篇
2018/09/28 Javascript
vue移动端下拉刷新和上滑加载
2020/10/27 Javascript
JavaScript实现简单动态表格
2020/12/02 Javascript
[51:17]Mineski vs Secret 2019国际邀请赛淘汰赛 败者组 BO3 第一场 8.22
2019/09/05 DOTA
Python中的模块和包概念介绍
2015/04/13 Python
在Python中使用判断语句和循环的教程
2015/04/25 Python
深入理解Python中命名空间的查找规则LEGB
2015/08/06 Python
Python学生成绩管理系统简洁版
2020/04/05 Python
Django+Ajax+jQuery实现网页动态更新的实例
2018/05/28 Python
浅析python中while循环和for循环
2019/11/19 Python
Python多线程正确用法实例解析
2020/05/30 Python
Python装饰器如何实现修复过程解析
2020/09/05 Python
安装并免费使用Pycharm专业版(学生/教师)
2020/09/24 Python
HTML5的Geolocation地理位置定位API使用教程
2016/05/12 HTML / CSS
trivago美国:全球最大的酒店价格比较网站
2018/01/18 全球购物
高中考试作弊检讨书
2014/01/14 职场文书
总经理助理岗位职责范本
2015/03/31 职场文书
材料员岗位职责范本
2015/04/11 职场文书
2016年秋季运动会加油稿
2015/12/21 职场文书
如何利用js在两个html窗口间通信
2021/04/27 Javascript
Django + Taro 前后端分离项目实现企业微信登录功能
2022/04/07 Python
V Rising 服务器搭建图文教程
2022/06/16 Servers