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实现列表自动循环滚动鼠标悬停时停止滚动
Sep 06 Javascript
javascript事件绑定学习要点
Mar 09 Javascript
漂亮! js实现颜色渐变效果
Aug 12 Javascript
详解Angular.js的$q.defer()服务异步处理
Nov 06 Javascript
AngularJS操作键值对象类似java的hashmap(填坑小结)
Nov 12 Javascript
jQuery代码优化方法总结
Jan 29 jQuery
代码详解JS操作剪贴板
Feb 11 Javascript
微信小程序功能之全屏滚动效果的实现代码
Nov 22 Javascript
JavaScript实现简易聊天对话框(加滚动条)
Feb 10 Javascript
关于Vue中$refs的探索浅析
Nov 05 Javascript
jQuery实现查看图片功能
Dec 01 jQuery
Echarts如何重新渲染实例详解
May 30 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以ROOT权限执行系统命令的方法
2011/02/10 PHP
PHP CodeBase:将时间显示为"刚刚""n分钟/小时前"的方法详解
2013/06/06 PHP
php实现文件下载(支持中文文名)
2013/12/04 PHP
PHP时间类完整实例(非常实用)
2015/12/25 PHP
php中请求url的五种方法总结
2017/07/13 PHP
LNMP部署laravel以及xhprof安装使用教程
2017/09/14 PHP
Laravel jwt 多表(多用户端)验证隔离的实现
2019/12/18 PHP
建立良好体验度的Web注册系统ajax
2007/07/09 Javascript
JS实现让网页背景图片斜向移动的方法
2015/02/25 Javascript
基于jQuery实现简单的折叠菜单效果
2015/11/23 Javascript
JavaScript实现九九乘法表的简单实例
2016/06/07 Javascript
Ajax基础知识详解
2017/02/17 Javascript
Vue Cli与BootStrap结合实现表格分页功能
2017/08/18 Javascript
Angular弹出模态框的两种方式
2017/10/19 Javascript
利用Vue2.x开发实现JSON树的方法
2018/01/04 Javascript
vue-cli系列之vue-cli-service整体架构浅析
2019/01/14 Javascript
基于elementUI实现图片预览组件的示例代码
2019/03/31 Javascript
了解前端理论:rscss和rsjs
2019/05/23 Javascript
初学node.js中实现删除用户路由
2019/05/27 Javascript
js实现点击图片在屏幕中间弹出放大效果
2019/09/11 Javascript
Vue数字输入框组件的使用方法
2019/10/19 Javascript
用Python解析XML的几种常见方法的介绍
2015/04/09 Python
Python 功能和特点(新手必学)
2015/12/30 Python
对Python3中bytes和HexStr之间的转换详解
2018/12/04 Python
Python 正则表达式 re.match/re.search/re.sub的使用解析
2019/07/22 Python
Python3内置函数chr和ord实现进制转换
2020/06/05 Python
浅析Python 字符编码与文件处理
2020/09/24 Python
HTML5 与 XHTML2
2008/10/17 HTML / CSS
HTML5 transform三维立方体实现360无死角三维旋转效果
2014/08/22 HTML / CSS
TripAdvisor越南:全球领先的旅游网站
2017/09/21 全球购物
Stokke美国官方网店:高级儿童家具、推车、汽车座椅和配件
2020/06/06 全球购物
应用艺术毕业生的自我评价
2013/12/04 职场文书
校园活动策划方案
2014/06/13 职场文书
企业法人授权委托书范本
2014/09/23 职场文书
大学生暑期社会实践的个人总结!
2019/07/17 职场文书
CSS实现五种常用的2D转换
2021/12/06 HTML / CSS