全面深度解析URL编码和URL解码方法过程

作者:小易整编 来源:小易整编 2022-06-22 03:57

全面深度解析URL编码和URL解码方法过程


一、URL含义

1、URL定义

URL 是Uniform Resource Locator 的缩写,统一资源定位符,对可以从互联网上得到的资源的位置和访问方法的一种简洁的表示,是互联网上标准资源的地址。互联网上的每个文件都有一个唯一的URL,它包含的信息指出文件的位置以及浏览器应该怎么处理它。基本URL包含模式(或称协议)、服务器名称(或IP地址)、路径和文件名、参数,如“协议://授权/路径查询?参数”。

**URL 与 URI **

很多人会混淆这两个名词。

• URL:(Uniform/Universal Resource Locator 的缩写,统一资源定位符)。

• URI:(Uniform Resource Identifier 的缩写,统一资源标识符)。

对于URI, 具体的结构如下:

全面深度解析URL编码和URL解码方法过程

URI 属于 URL 更低层次的抽象,一种字符串文本标准。URL 是 URI 的一个子集。
URI 表示请求服务器的路径,定义这么一个资源。而 URL 同时说明要如何访问这个资源(http://)。

URL 百度百科[1]

2、URL字符编码表

1、URL 编码 - 从  到 %ff[2]

2、HTML特殊字符编码对照表[3]

二、URL 编码

1、为什么要编码转义

推荐阅读:字符编码:ASCII、Unicode 和 UTF-8 的区别[4]

世界上存在着多种编码方式,同一个二进制数字可以被解释成不同的符号,不同的编码方式,解码出来就是乱码,造成数据传输和阅读的极大障碍。互联网的来临,必须要统一字符编码,Unicode(统一码、万国码、单一码)作为计算机科学领域里的一项业界标准应运而生。Unicode 是互联网统一的符号集,只规定了符号唯一的二进制代码值,却没有规定这个二进制代码应该如何存储。UTF-8是一种针对Unicode的可变长度字符编码,UTF-8用1到4个字节编码Unicode字符,在互联网上使用最广的一种 Unicode 的实现方式。其他实现方式还包括 UTF-16(字符用两个字节或四个字节表示)和 UTF-32(字符用四个字节表示),不过在互联网上基本不用。

注意:UTF-8 是 Unicode 的实现方式之一。

如 中 字:

• Unicode码值:\u4e2d

• URL编码(UTF-8):%e4%b8%ad

2、URL编码规则

Url编码通常也被称为百分号编码,编码方式非常简单,使用%百分号加上两位的字符——0123456789ABCDEF——代表一个字节的十六进制形式。Url编码默认使用的字符集是US-ASCII。例如a在US-ASCII码中对应的字节是0x61,那么Url编码之后得到的就是%61,我们在地址栏上输入 http://g.cn/search?q=%61%62%63 ,实际上就等同于在google上搜索abc了。又如@符号在ASCII字符集中对应的字节为0x40,经过Url编码之后得到的是%40。

对于非ASCII字符,需要使用ASCII字符集的超集进行编码得到相应的字节,然后对每个字节执行百分号编码。对于Unicode字符,RFC文档建议使用utf-8对其进行编码得到相应的字节,然后对每个字节执行百分号编码。如"中文"使用UTF-8字符集得到的字节为0xE4 0xB8 0xAD 0xE6 0x96 0x87,经过Url编码之后得到"%E4%B8%AD%E6%96%87"。

3、URL不需要编码的字符

HTTP URL 使用的RFC3986编码规范,RFC3986文档规定,URL中只允许包含以下四种:

1、英文字母(a-z A-Z)

2、数字(0-9)

3、-_.~ 4个特殊字符

4、所有保留字符,RFC3986中指定了以下字符为保留字符(英文字符):
! * ' ( ) ; : @ & = + $ , / ? # [ ]

5、编码标记符号 %

URL 编码使用 "%" 其后跟随两位的十六进制数来替换非 ASCII 的字符,中文是三个编码组合。十六进制格式用于在浏览器和插件中显示非标准的字母和字符。

4、URL需要编码的字符

Url编码的原则就是使用安全的字符(没有特殊用途或者特殊意义的可打印字符)去表示那些不安全的字符。

4.1、非URL定义的字符

不能在 URL 中包含任何非 ASCII 字符,如中文字符、希腊文字符,拉丁文字符等。如果客户端浏览器和服务端浏览器支持的字符集不同的情况下,中文可能会造成乱码问题。

4.2、会引起歧义的保留字符

URL 拼接参数或路径设置时,拼接的普通字符串中含有保留字符,会引起歧义的情况。URL 参数字符串中使用 key=value 这样的键值对形式来传参,键值对之间以 & 符号分隔,如宝洁公司的简称为P&G,假设需要当做参数去传递,name=P&G&t=1450591802326,因为参数中多了一个&势必会造成接收 URL 的服务器解析错误,因此必须将引起歧义的 & 符号进行转义编码。

部分保留字符及其URL编码

全面深度解析URL编码和URL解码方法过程

如果需要在URL中用到特殊字符或中文字符,需要将这些特殊字符换成相应的十六进制的值。

三、iOS端URL具体编码处理

1、URL编码和解码是成对

URL编码和解码是一个可逆的过程,编码和解码的逻辑是翻转对应的。
成对有两层含义: 

• 1、两个方法的逻辑对应。一个固定的编码方式,也对一个固定的逆向解码方式,反之亦然。

• 2、编码和解码的次数也要一一对应。

这四种种字符后,URL编码后的值还是它本身:

1、英文字母(a-z A-Z)

2、数字(0-9)

3、特殊字符( -_.)

4、部分保留字符(英文字符):! * ' ( ) ; : @ & = + $ , / ?

说明:~ # [] 这四个字符是否被转码成百分号编码,因系统不同会有不同。
URL字符编码使用%百分号加上两位的字符——0123456789ABCDEF——代表一个字节的十六进制形式。因编码后的值含有 % 保留字符。再次编译 % 会编译成 %25。

例如: &

第一次URL编码后:%26

第二次URL编码后:%2526

第三次URL编码后:%252526

正常解码逻辑:

第一次URL解码后:%2526

第二次URL解码后:%26

第三次URL解码后:&
因此,URL编码和解码必须是成对出现的。
初始字符为 & 连续编码三次,连续解码两次,则得到 %26 。
初始字符为 &%26 编码一次:%26%2526 连续解码两次则得到 && 。

2、URL是怎么解码的

我们看一个常见的接口请求示例:

图片

一般会根据 ://、: 、 / 、 ?、 &、= 等拆分出请求的协议、服务器名称(或IP地址)、端口号、路径和文件名、参数名、参数值等。

3、在组装URL的什么阶段进行URL编码

我们看一个常见的接口请求示例:

图片

全面深度解析URL编码和URL解码方法过程

绿色字体是保留字符,都有特殊的含义,是不应该是被编码的。红色字体必须要要编译的部分。黄色背景的字符串,不应该被编译。若以上操作不正确,会影响整个URL的解析。


本文地址:武汉SEO优化频道 http://www.hkm168.com/seojishu/8863.html,武汉易企推公司是一家专业的武汉网络推广,百度开户竞价托管,SEO网站优化公司,提供一站式全网营销服务:小程序开发,网站建设,SEO百度排名,SEM竞价托管,百度推广开户、360搜狗百度竞价开户、百度地图标注、百科词条创建修改、微信公众号代运营、公司负面公关处理等;另外,转载本文请保留本文地址,本站部分文章图片来自网络,本着互联网分享精神,如有侵犯到您的权益,请告知我们删除,谢谢!


相关文章相关文章
  • 全面深度解析URL编码和URL解码方法过程

    全面深度解析URL编码和URL解码方法过程

    全面深度解析URL编码和URL解码方法过程,一、URL含义1、URL定义URL 是Uniform Resource Locator 的缩写,统一资源定位符,对可以从互联网上得到的资源的位置和访问方法的一种简洁的表示,是互联网上标准资源的地址...

    2022-06-22 03:06
  • URL编码原理详解,URL编码转换工具

    URL编码原理详解,URL编码转换工具

    URL编码原理详解,URL编码转换工具介绍,工作当中经常遇到通过URL传递参数(常见的如GET请求)时出现参数乱码,或者URL中的参数传递到后端多了空格等字符,或者URL传递的参数被莫名其妙截断,或者http接口需要的数字签名参数一直验签失...

    2022-06-22 03:06
  • URL地址是什么意思,URL地址怎么获取?

    URL地址是什么意思,URL地址怎么获取?

    URL地址是什么意思?URL地址也叫URL(Uniform Resource Locator)统一资源定位器,是计算机Web网络相关的术语,就是网页地址的意思。我们的互联网世界就是由很多的URL地址组成,也可以说就是已URL来表现的。每一个...

    2022-06-21 08:06
  • URL规范标准,URL是越短越好么?

    URL规范标准,URL是越短越好么?

    URL规范标准是越短越好么?假如有些论坛或搜索类程序,会出现许多参数,参数越多,搜索引擎蜘蛛就越难识别,而且很容易陷入蜘蛛陷阱。URL网址规范如下:1、字母全部小写;2、网址越短越好,方便用户记忆;3、避免参数过多,尽量使用静态网址或伪静态...

    2022-06-21 08:06
  • URL是什么意思 ,URL格式有哪几部分组成?

    URL是什么意思 ,URL格式有哪几部分组成?

    URL是什么意思URL定义:URL是(Uniform Resource Locator,统一资源定位符)的缩写,它是WWW的统一资源定位标志,就是指网络地址,俗称“网址”,url用浏览器打开。URL是文件的网络地址,相当于人的住址,每一个网...

    2022-06-21 07:06
  • urlmon.dll是什么

    urlmon.dll是什么

    DLL 文件: urlmon 或者 urlmon.dll DLL 名称: OLE32 Extensions for Win32 描述:urlmon.dll是微软Microsoft对象链接和嵌入相关模...

    2022-06-15 12:06
湖北SEO
孝感seo 十堰seo 恩施seo 咸宁seo 荆州seo 荆门seo 黄冈seo 黄石seo 襄阳seo 宜昌seo 随州seo 鄂州seo 天门seo 潜江seo 北京seo 天津seo 上海seo 重庆seo 西宁seo 拉萨seo 乌鲁木齐seo 武汉SEO优化 湖北网站建设 百度推广开户 巨量千川开户 危机公关处理 百度百科创建
河北SEO
石家庄seo 唐山seo 邯郸seo 保定seo 沧州seo 邢台seo 廊坊seo 承德seo 张家口seo 衡水seo 秦皇岛seo 河北网站建设 石家庄网站建设 河南网站建设 郑州网站建设
河南SEO
郑州seo 开封seo 洛阳seo 平顶山seo 焦作seo 鹤壁seo 新乡seo 安阳seo 濮阳seo 许昌seo 漯河seo 三门峡seo 南阳seo 商丘seo 信阳seo 周口seo 驻马店seo 济源seo
湖南SEO
长沙seo 株洲seo 湘潭seo 衡阳seo 邵阳seo 岳阳seo 常德seo 张家界seo 益阳seo 郴州seo 永州seo 怀化seo 娄底seo 湘西seo 湖南网站建设 长沙网站建设
江西SEO
南昌seo 九江seo 景德镇seo 上饶seo 鹰潭seo 抚州seo 宜春seo 新余seo 萍乡seo 吉安seo 赣州seo 江西网站建设 南昌网站建设
安徽SEO
合肥seo 黄山seo 芜湖seo 马鞍seo 安庆seo 淮南seo 阜阳seo 淮北seo 铜陵seo 亳州seo 宣城seo 蚌埠seo 六安seo 池州seo 滁州seo 宿州seo 安徽网站建设 合肥网站建设
山东SEO
济南seo 青岛seo 淄博seo 枣庄seo 东营seo 烟台seo 潍坊seo 济宁seo 泰安seo 威海seo 日照seo 临沂seo 德州seo 聊城seo 滨州seo 菏泽seo 山东网站建设 济南网站建设
江苏SEO
南京seo 无锡seo 徐州seo 常州seo 苏州seo 南通seo 连云港seo 淮安seo 盐城seo 扬州seo 镇江seo 泰州seo 宿迁seo 江苏网站建设 南京网站建设
浙江SEO
杭州seo 湖州seo 嘉兴seo 金华seo 丽水seo 宁波seo 衢州seo 绍兴seo 台州seo 温州seo 舟山seo 浙江网站建设 杭州网站建设
福建SEO
福州seo 厦门seo 泉州seo 漳州seo 莆田seo 宁德seo 龙岩seo 三明seo 南平seo 福建网站建设 福州网站建设
海南SEO
海口seo 三亚seo 三沙seo 儋州seo 网站建设公司 营销型网站 高端网站建设 模板网站制作 武汉APP开发 微信小程序开发 海南网站建设 海口网站建设
广东SEO
广州seo 深圳seo 珠海seo 汕头seo 佛山seo 韶关seo 湛江seo 肇庆seo 江门seo 茂名seo 惠州seo 梅州seo 汕尾seo 河源seo 阳江seo 清远seo 东莞seo 中山seo 潮州seo 揭阳seo 云浮seo 广东网站建设 广州网站建设 深圳网站建设
广西SEO
南宁seo 桂林seo 柳州seo 梧州seo 钦州seo 北海seo 玉林seo 贵港seo 防城港seo 百色seo 崇左seo 来宾seo 贺州seo 河池seo 广西网站建设 南宁网站建设
云南SEO
昆明seo 曲靖seo 玉溪seo 昭通seo 保山seo 丽江seo 普洱seo 临沧seo 德宏seo 怒江seo 迪庆seo 大理seo 楚雄seo 红河seo 文山seo 西双版纳seo 云南网站建设 昆明网站建设
贵州SEO
贵阳seo 遵义seo 六盘水seo 安顺seo 毕节seo 铜仁seo 黔东南seo 黔南seo 黔西南seo 贵州网站建设 贵阳网站建设
四川SEO
成都seo 自贡seo 攀枝花seo 泸州seo 德阳seo 绵阳seo 广元seo 遂宁seo 内江seo 乐山seo 南充seo 眉山seo 宜宾seo 广安seo 达州seo 雅安seo 巴中seo 资阳seo 阿坝seo 甘孜seo 凉山seo 四川网站建设 成都网站建设
山西SEO
太原seo 大同seo 朔州seo 忻州seo 阳泉seo 吕梁seo 晋中seo 长治seo 晋城seo 临汾seo 运城seo 山西网站建设 太原网站建设
陕西SEO
西安seo 宝鸡seo 咸阳seo 铜川seo 渭南seo 延安seo 榆林seo 汉中seo 安康seo 商洛seo 陕西网站建设 西安网站建设
甘肃SEO
兰州seo 嘉峪关seo 金昌seo 白银seo 天水seo 武威seo 张掖seo 平凉seo 酒泉seo 庆阳seo 定西seo 陇南seo 临夏seo 甘南seo 甘肃网站建设 兰州网站建设
宁夏SEO
银川seo 石嘴山seo 吴忠seo 固原seo 中卫seo 宁夏网站建设 银川网站建设 网络推广技巧 网络营销知识 武汉SEO顾问 武汉竞价托管 IT知识百科 IT疑问解答
内蒙古SEO
呼和浩特seo 包头seo 乌海seo 赤峰seo 通辽seo 鄂尔多斯seo 呼伦贝尔seo 巴彦淖尔seo 乌兰察布seo 内蒙古网站建设 呼和浩特网站建设
辽宁SEO
沈阳seo 大连seo 鞍山seo 抚顺seo 本溪seo 丹东seo 锦州seo 营口seo 阜新seo 辽阳seo 盘锦seo 铁岭seo 朝阳seo 葫芦岛seo 辽宁网站建设 沈阳网站建设
吉林SEO
长春seo 四平seo 辽源seo 通化seo 白山seo 松原seo 白城seo 延边seo 吉林网站建设 长春网站建设
黑龙江SEO
哈尔滨seo 齐齐哈尔seo 鹤岗seo 双鸭山seo 鸡西seo 大庆seo 伊春seo 牡丹江seo 佳木斯seo 七台河seo 黑河seo 绥化seo 黑龙江网站建设 哈尔滨网站建设
本地企业
              可提供上门服务

便捷

本地企业可提供上门服务

提供适合、专业可行方案

周到

提供适合、专业可行方案

5-10分钟售后响应机制<

贴心

5-10分钟售后响应机制

按效果收费,无效果不收费

放心

按效果收费,无效果不收费

行业高标准,效果稳定可靠

稳定

行业高标准,效果稳定可靠

1-3个月排名上百度首页

快速

1-3个月排名上百度首页

武汉易企推网络公司;公司地址:武汉市武昌区静安路6号5.5创意产业园4楼;公司官网:http://www.hkm168.com XML地图

服务热线:18120550335 / 027-88866235 欢迎来电咨询; 联系QQ:1193073039

Copyrigh©2017-2030 版权所有:武汉易企推网络科技有限公司 备案号:鄂ICP备17012199号 网站地图 手机站