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 笔记二 Array和Date对象方法
May 22 Javascript
JS实现上下左右对称的九九乘法表
Feb 22 Javascript
js中用cssText设置css样式的简单方法
Sep 19 Javascript
Jquery Easyui菜单组件Menu使用详解(15)
Dec 18 Javascript
JS判断两个对象内容是否相等的方法示例
Apr 10 Javascript
解决webpack打包速度慢的解决办法汇总
Jul 06 Javascript
详解vue-cli构建项目反向代理配置
Sep 07 Javascript
详解微信小程序调用支付接口支付
Apr 28 Javascript
vue实现移动端图片上传功能
Dec 23 Javascript
JavaScript 空间坐标的使用
Aug 19 Javascript
Vue指令实现OutClick的示例
Nov 16 Javascript
如何封装Vue Element的table表格组件
Feb 06 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
叶罗丽:为什么大家对颜冰这对CP非常关心,却对金茉两人十分冷漠
2020/03/17 国漫
PHP编实现程动态图像的创建代码
2008/09/28 PHP
php递归实现无限分类生成下拉列表的函数
2010/08/08 PHP
php全排列递归算法代码
2012/10/09 PHP
php使用redis的几种常见操作方式和用法示例
2020/02/20 PHP
菜单效果
2006/10/14 Javascript
javascript从右边截取指定字符串的三种实现方法
2013/11/29 Javascript
JS中getYear()和getFullYear()区别分析
2014/07/04 Javascript
Node.js的Koa框架上手及MySQL操作指南
2016/06/13 Javascript
一个简单的JavaScript Map实例(分享)
2016/08/03 Javascript
js学习总结之DOM2兼容处理this问题的解决方法
2017/07/27 Javascript
Node.js中sequelize时区的配置方法
2017/12/10 Javascript
vue2 中二级路由高亮问题及配置方法
2019/06/10 Javascript
Javascript 对象(object)合并操作实例分析
2019/07/30 Javascript
利用Vue的v-for和v-bind实现列表颜色切换
2020/07/17 Javascript
python批量同步web服务器代码核心程序
2014/09/01 Python
python结合API实现即时天气信息
2016/01/19 Python
Python 序列的方法总结
2016/10/18 Python
python使用matplotlib绘制折线图教程
2017/02/08 Python
解决python3 安装完Pycurl在import pycurl时报错的问题
2018/10/15 Python
Win系统PyQt5安装和使用教程
2019/12/25 Python
python 解决flask 图片在线浏览或者直接下载的问题
2020/01/09 Python
详解有关PyCharm安装库失败的问题的解决方法
2020/02/02 Python
Python使用OpenPyXL处理Excel表格
2020/07/02 Python
详解Python中的路径问题
2020/09/02 Python
Python图像识别+KNN求解数独的实现
2020/11/13 Python
python3字符串输出常见面试题总结
2020/12/01 Python
python飞机大战游戏实例讲解
2020/12/04 Python
HTML5标签大全
2016/11/23 HTML / CSS
Under Armour美国官网:美国知名高端功能性运动品牌
2016/09/05 全球购物
德国baby-markt婴儿用品瑞士网站:baby-markt.ch
2017/06/09 全球购物
Tirendo比利时:在线购买轮胎
2018/10/22 全球购物
软件测试工程师结构化面试题库
2016/11/23 面试题
放飞梦想演讲稿200字
2014/08/26 职场文书
财政局党的群众路线教育实践活动整改方案
2014/09/21 职场文书
Vue vee-validate插件的简单使用
2021/06/22 Vue.js