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

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

URL编码原理详解,URL编码转换工具介绍,工作当中经常遇到通过URL传递参数(常见的如GET请求)时出现参数乱码,或者URL中的参数传递到后端多了空格等字符,或者URL传递的参数被莫名其妙截断,或者http接口需要的数字签名参数一直验签失败等问题,经验丰富的程序员第一反应可能都是需要URL编解码,可为什么需要,什么时候需要,你是否一直都处于懵逼的状态?小编给大家一起梳理一下关于URL编解码的问题。

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

为什么要URL编码

URL,即统一资源定位符,是可以从互联网上得到的资源的位置和访问方法的一种简洁表示,是互联网上标准资源的地址,它使用ASCⅡ字符集的一部分来表示互联网的地址,百度百科如是说。这里重点就是ASCⅡ字符集,意味着URL中如果有非ASCⅡ字符,如汉字等就必须要经过编码转化为ASCⅡ字符集字符。为什么说是一部分ASCⅡ字符集?因为URL需要过滤具有某些特殊含义的字符,网络标准RFC 1738做了硬性规定:

"...Only alphanumerics [0-9a-zA-Z], the special characters "$-_.+!*'()," [not including the quotes - ed], and reserved characters used for their reserved purposes may be used unencoded within a URL."

“...只有字母和数字[0-9a-zA-Z]、一些特殊符号“$-_.+!*'(),”[不包括双引号]、以及某些保留字,才可以不经过编码直接用于URL。”

实际上,浏览器等很多http客户端,在我们输入URL访问某一资源时,会对URL自动进行编码,我们Java开发最常用的spring mvc也会对URL进行自动解码,进行资源映射和参数绑定,很多时候并不需要程序员关心。

我们实际开发中遇到的需要URL编解码的问题,往往是URL中的参数需要编解码,比如URL参数乱码,或者URL中的参数莫名其妙多了空格等其它字符,或者URL传递的参数被莫名其妙截断,又或者http接口需要的数字签名参数一直验签失败等问题。


URL编码原理详解,如何URL编码

URL编码通常也被称为百分号编码(percent-encoding),使用%加上两位十六进制字符。URL编码要做的,就是将每一个非安全的ASCII字符都被替换为“%xx”格式,对于非ASCII字符,RFC文档建议使用utf-8对其进行编码得到相应的字节,然后对每个字节执行百分号编码。如"中文"使用UTF-8字符集得到的字节为0xE4 0xB8 0xAD 0xE6 0x96 0x87,经过URL编码后得到"%E4%B8%AD%E6%96%87"。

URL编码表:

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

实际上,浏览器等很多HTTP客户端会对URL自动进行编码,比如我们要访问参数包含中文和URL参数分割符'&'的URL地址:

http://lottery点jd点com?aaa=码了个啥&pascalx,参数aaa="码了个啥&pascalx"

Microsoft Edge 浏览器看上去:

谷歌浏览器看上去:

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

可以看出参数aaa都被'&'符截断为两个参数,URL自动编解码并不能解决比如回掉地址拼接,分享链接拼接用户标识,或者URL拼接埋点参数等URL拼接所遇到的参数传递的问题,这个时候就需要我们手动对URL的参数部分进行编解码。

前端JavaScript做编解码

JavaScript URL编解码函数:

encodeURI()与decodeURI(),它适用于对整个URL进行编码,因此除了常见的符号以外,对其他一些在URL中有特殊含义的符号"; / ? : @ & = + $ , #"不进行编码。

JavaScript URL编解码函数:

encodeURIComponent()与 decodeURIComponent(),它与encodeURI()和decodeURI()的区别是,它适用于对URL的组成部分进行个别编码,而不用于对整个URL进行编码。"; / ? : @ & = + $ , #",这些在encodeURI()中不被编码的符号,在encodeURIComponent()中会被编码。

下面的例子很容易看出两组函数的区别:

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

因此我们可以得出结论:

对个别URL组成部分,如参数编码用encodeURIComponent函数。

后端Java做编解码

java.net.URLEncoder#encode(java.lang.String, java.lang.String)与

java.net.URLDecoder#decode(java.lang.String, java.lang.String)

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

可以很容易看出,Java URLEncoder#encode方法的功能与JavaScript 的encodeURIComponent函数相同。

以上,我们可以知道,像回掉地址拼接,分享链接拼接用户标识,或者URL拼接埋点参数等通过URL传递参数的开发需求,往往会遇到URL编解码参数传递的问题,比如URL参数乱码,或者URL中的参数莫名其妙多了空格等其它字符,或者URL传递的参数被截断,这个时候就需要我们手动对URL的参数部分进行编解码,再拼接到URL上,然后交由浏览器等HTTP客户端自动对URL做二次编解码,就能避免URL参数传递所遇到的问题。


本文地址:武汉SEO优化频道 http://www.hkm168.com/seojishu/8861.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号 网站地图 手机站