URI解析

本文介绍了URI(统一资源标识符)的概念、格式和解析方法,通过示例展示了如何拆解URI各部分。还提及在JS中,推荐用encodeURI对网址编码、encodeURIComponent对参数编码,解码对应方法为decodeURI及decodeURIComponent,同时说明了unicode字符集与base64转换的相关操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

URI: Uniform Resource Identifer 统一资源标识符特指在计算机用语中, 一个用于标识某一互联网资源名称的字符串

它的格式一般如下:

协议(访问资源的命名机制)

主机IP地址(存放资源的主机名)

资源存放的具体地址,包括目录和文件(资源自身的名称,由路径表)

URI解析:“解析”一个URI意味着将一个相对URI引用转换为绝对形式,或者通过尝试获取一个可解引URI或一个URI引用所代表的资源来解引用这个URI。文档处理软件的“解析”部分通常同时提供这两种功能,通俗一句话,即是把整个uri进行拆解,具体用途,上升至具体情况具体分析

 举个栗子:

var uriStr = 'https://so.youkuaiyun.com/so/search/s.do?q=py&t=%20&u='

window.location = uriStr

console.log(window.location.href) // 这个是完整的uri

console.log(window.location.protocol) // 通信协议 https
window.location.host // 主机名(域名或IP地址))

window.location.port  // 端口号)

window.location.pathname // 路径(资源目录)

window.location.search // 参数(?及其后参数)

window.location.hash (信息片断(锚点))

既然提到了uri,那就提一嘴URI编码及解码的相关内容

在js中推荐的做法是用encodeURI对URI的网址部分编码,用encodeURIComponent对URI中传递的参数进行编码,理由如下:

它可以对所有的Unicode符号编码,包括中文,空格,井号(#),斜线(/),冒号(:)

除了地址,参数亦可以进行编码

escape的话,并不完备,支持度并不好

解码对应的方法为decodeURI及decodeURIComponent

encodeURIComponent与decodeURIComponent对应的字符编码为utf-8,基于这个原则,utf-8与base64之前的转换方法

在加上window.btoa与window.atob这两个方法不支持unicode字符集,综上所述,在使用unicode字符集与base64转换之前,需要透过encodeURIComponent与decodeURIComponen将其转换成utf-8之后,再执行 unicode字符集与base64转换操作

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值