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 相关文章推荐
一些实用的jQuery代码片段收集
Jul 12 Javascript
jquery数组过滤筛选方法grep()简介
Jun 06 Javascript
jQuery常用数据处理方法小结
Feb 20 Javascript
Javascript中判断对象是否为空
Jun 10 Javascript
js实现的Easy Tabs选项卡用法实例
Sep 06 Javascript
学习JavaScript设计模式之状态模式
Jan 08 Javascript
AngularJS表单和输入验证实例
Nov 02 Javascript
js按条件生成随机json:randomjson实现方法
Apr 07 Javascript
详解Node.js中exports和module.exports的区别
Apr 19 Javascript
浅析从vue源码看观察者模式
Jan 29 Javascript
react-navigation之动态修改title的内容
Sep 26 Javascript
angular6 填坑之sdk的方法
Dec 27 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适配器模式介绍
2012/08/14 PHP
php ci框架中加载css和js文件失败的解决方法
2014/03/03 PHP
CI框架中libraries,helpers,hooks文件夹详细说明
2014/06/10 PHP
PHP实现生成唯一编号(36进制的不重复编号)
2014/07/01 PHP
PHP面向对象程序设计高级特性详解(接口,继承,抽象类,析构,克隆等)
2016/12/02 PHP
ext 同步和异步示例代码
2009/09/18 Javascript
纯JAVASCRIPT图表动画插件Highcharts Examples
2011/04/16 Javascript
详解JavaScript逻辑And运算符
2015/12/04 Javascript
jQuery Mobile开发中日期插件Mobiscroll使用说明
2016/03/02 Javascript
IE下JS保存图片的简单实例
2016/07/15 Javascript
浅谈javascript:两种注释,声明变量,定义函数
2016/10/05 Javascript
Node.js安装配置图文教程
2017/05/10 Javascript
angular动态删除ng-repaeat添加的dom节点的方法
2017/07/20 Javascript
基于vue的短信验证码倒计时demo
2017/09/13 Javascript
vue vuex vue-rouert后台项目——权限路由(适合初学)
2017/12/29 Javascript
javascript代码优化的8点总结
2018/01/29 Javascript
在Node.js中将SVG图像转换为PNG,JPEG,TIFF,WEBP和HEIF格式的方法
2019/08/22 Javascript
解决layui的input独占一行的问题
2019/09/10 Javascript
浅谈Ant Design Pro 菜单自定义 icon
2020/11/17 Javascript
Python3读取文件常用方法实例分析
2015/05/22 Python
Python爬虫DOTA排行榜爬取实例(分享)
2017/06/13 Python
python实现简单的文字识别
2018/11/27 Python
基于PyQt4和PySide实现输入对话框效果
2019/02/27 Python
Python列表切片常用操作实例解析
2019/12/16 Python
Python插件机制实现详解
2020/05/04 Python
python利用蒙版抠图(使用PIL.Image和cv2)输出透明背景图
2020/08/04 Python
超级实用的8个Python列表技巧
2020/08/24 Python
详解CSS3中使用gradient实现渐变效果的方法
2015/08/18 HTML / CSS
总结30个CSS3选择器
2017/04/13 HTML / CSS
北京银河万佳Java面试题
2012/03/21 面试题
幼师岗位求职简历的自荐信格式
2013/09/21 职场文书
刑事上诉状范文
2015/05/22 职场文书
煤矿安全学习心得体会
2016/01/18 职场文书
2019年员工旷工保证书!
2019/06/28 职场文书
ajax请求前端跨域问题原因及解决方案
2021/10/16 Javascript
一文弄懂MySQL中redo log与binlog的区别
2022/02/15 MySQL