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 相关文章推荐
Ctrl+Enter提交内容信息
Jun 26 Javascript
JS模拟多线程
Feb 07 Javascript
javascript 函数速查表
Feb 07 Javascript
JQuery自适应IFrame高度(支持嵌套 兼容IE,ff,safafi,chrome)
Mar 28 Javascript
jquery+easeing实现仿flash的载入动画
Mar 10 Javascript
js实现touch移动触屏滑动事件
Apr 17 Javascript
IE7浏览器窗口大小改变事件执行多次bug及IE6/IE7/IE8下resize问题
Aug 21 Javascript
关于JS中prototype的理解
Sep 07 Javascript
JS实现选项卡实例详解
Nov 17 Javascript
AngulerJS学习之按需动态加载文件
Feb 13 Javascript
一篇文章让你彻底弄懂JS的事件冒泡和事件捕获
Aug 14 Javascript
SpringBoot+Vue开发之Login校验规则、实现登录和重置事件
Oct 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
一个阿拉伯数字转中文数字的函数
2006/10/09 PHP
php 传值赋值与引用赋值的区别
2010/12/29 PHP
windows下开发并编译PHP扩展的方法
2011/03/18 PHP
ThinkPHP实现支付宝接口功能实例
2014/12/02 PHP
PHP Web木马扫描器代码分享
2015/09/06 PHP
php基于闭包实现函数的自调用(递归)实例分析
2016/11/11 PHP
清华大学出版的事半功倍系列 javascript全部源代码
2007/05/04 Javascript
ExtJS 入门
2010/10/29 Javascript
纯js网页画板(Graphics)类简介及实现代码
2012/12/24 Javascript
JavaScript的Polymer框架中dom-repeat与VM的相关操作
2015/07/29 Javascript
angularjs学习笔记之简单介绍
2015/09/26 Javascript
jQuery使用模式窗口实现在主页面和子页面中互相传值的方法
2016/03/01 Javascript
d3.js中冷门却实用的内置函数总结
2017/02/04 Javascript
jQuery实现淡入淡出的模态框
2017/02/09 Javascript
Angular2 之 路由与导航详细介绍
2017/05/26 Javascript
ztree实现左边动态生成树右边为内容详情功能
2017/11/03 Javascript
浅谈ajax在jquery中的请求和servlet中的响应
2018/01/22 jQuery
vue js秒转天数小时分钟秒的实例代码
2018/08/08 Javascript
JQuery 实现文件下载的常用方法分析
2019/10/29 jQuery
Angular利用HTTP POST下载流文件的步骤记录
2020/07/26 Javascript
Nuxt.js 静态资源和打包的操作
2020/11/06 Javascript
js中实现继承的五种方法
2021/01/25 Javascript
Python写的英文字符大小写转换代码示例
2015/03/06 Python
python实现数独算法实例
2015/06/09 Python
Python 循环语句之 while,for语句详解
2018/04/23 Python
Python Pandas批量读取csv文件到dataframe的方法
2018/10/08 Python
python实现邮件自动发送
2019/08/10 Python
Ubuntu下Python+Flask分分钟搭建自己的服务器教程
2019/11/19 Python
Python装饰器用法与知识点小结
2020/03/09 Python
Python绘图实现台风路径可视化代码实例
2020/10/23 Python
Pop In A Box英国:Funko POP搪胶公仔
2019/05/27 全球购物
同步和异步有何异同,在什么情况下分别使用他们?举例说明
2014/02/27 面试题
十佳教师事迹材料
2014/01/11 职场文书
寄语是什么意思
2014/04/10 职场文书
读《教育心理学》心得体会
2016/01/22 职场文书
详细介绍Next.js脚手架完整搭建封装
2022/04/26 Javascript