URL编码指南
URL简介
URL 是统一资源定位符(Uniform Resource Locator)的缩写。它是用于在互联网上定位并访问资源的一种标识方式。
URL通常由以下几个组成部分组成:
- 协议(Protocol):指示要使用的协议,如HTTP、HTTPS、FTP等。
- 主机名(Host):指定资源所在的主机或服务器的名称或IP地址。
- 端口号(Port):可选项,指定服务器上提供资源的特定端口号,如果未提供,默认使用协议的默认端口。
- 路径(Path):指示资源在服务器上的位置,可以是一个文件路径或文件夹路径。
- 查询参数(Query Parameters):可选项,用于传递额外的信息给服务器,以影响资源的呈现或操作。
- 片段(Fragment):可选项,指定资源中的特定部分或片段。

例如,下面是一个常见的URL示例:
https://www.example.com:8080/myfolder/mypage.html?param1=value1¶m2=value2#section2
在上面的例子中,协议是 HTTPS,主机名是 www.example.com,端口号为 8080,路径是 /myfolder/mypage.html,查询参数是 param1=value1 和 param2=value2,片段是 section2。
URL使我们可以轻松地访问和定位到互联网上的各种资源,例如网页、图像、视频、API等。
URL编码是啥?
URL编码是一种将特殊字符和非ASCII字符转换为特定字符编码的过程,以便在URL中进行传输和处理。
在URL编码中,特殊字符和非ASCII字符被转换为一种称为百分号编码(Percent-Encoding)的格式。这种编码格式用百分号(%)加上两个十六进制数值来表示字符的编码。
URL编码的目的是确保URL中不包含不允许的或可能引起冲突的字符,以及能够正确传输和解析各种字符。一些常见的特殊字符如空格、斜杠、问号等在URL中具有特殊的语义含义,为了将其表示为普通字符,需要进行URL编码。
举例来说,空格在URL中是不允许的,因此需要将空格编码为%20。同样的,其他特殊字符也有对应的编码方式,例如斜杠(%2F)、问号(%3F)、等号(%3D)、加号(%2B)等。
URL编码使得URL能够被正确地传输和解析,确保了在互联网上的可靠性和一致性。它在Web开发、网站解析等领域中广泛使用。
为什么要使用URL编码?
URL编码的主要目的是确保在URL中传输和解析各种字符时的可靠性和一致性。以下是使用URL编码的几个主要原因:
-
特殊字符的语义问题:URL中的一些字符具有特殊的语义含义,例如问号(?)、等号(=)、斜杠(/)等。为了将这些字符表示为普通字符而不是发挥特殊的作用,需要对它们进行URL编码。
-
安全性:URL编码可以防止恶意攻击和注入,例如XSS(跨站脚本)攻击。编码可以确保传输的数据不包含恶意脚本或不符合预期的字符,从而保护系统的安全性。
-
特殊字符的冲突:URL中有些字符可能会和URL结构冲突,特别是对于包含特殊字符的用户输入,如文件名、路径等。通过URL编码,可以将这些特殊字符转换为安全的表示形式,避免引起冲突。
-
非ASCII字符的支持:URL编码还可以处理非ASCII字符,这些字符无法直接在URL中传输。通过URL编码,可以将非ASCII字符转换为URL安全的编码形式,例如Unicode字符。
综上所述,URL编码是一种标准化的字符转换方式,确保在URL中传输和解析各种字符的准确性和一致性,同时提高了URL传输的安全性和可靠性。
URL编码的基本规则
URL编码的基本规则如下:
-
字母、数字和一些特殊字符,例如 -_.~ 这些字符保持不变。
-
空格被编码为 “+” 或 “%20”。
-
其他非字母数字字符被编码为百分号(%)加上它们的ASCII值的十六进制表示。
-
对于非ASCII字符,如Unicode字符,采用"UTF-8"编码,将字符转换为字节序列,然后将每个字节的值编码为百分号(%)加上其十六进制值。
-
对于某些字符的编码,例如斜杠(/,%2F)和问号(?,%3F),虽然它们在大多数情况下没有语义上的特殊含义,但为了保守起见,最好仍然进行编码。
-
编码区分大小写。大写字母和小写字母(A-Z和a-z)在编码时被视为不同的字符。
总结
URL编码是一种将URL中非字母数字字符转换为特殊编码格式的方法。这些特殊编码格式采用百分号+十六进制表示的形式,以避免URL中的特殊字符被误解为其他用途。URL编码使得包含特殊字符的URL能够在网络中正确传输和解析,并且保证URL的完整性和准确性。
相关文章:
URL编码指南
URL简介 URL 是统一资源定位符(Uniform Resource Locator)的缩写。它是用于在互联网上定位并访问资源的一种标识方式。 URL通常由以下几个组成部分组成: 协议(Protocol):指示要使用的协议,如…...
Java mail邮件开发 OA办公系统
目录 1 Java mail邮件开发 OA办公系统 1.1 ExitServlet 1.1.1 //退出系统 1.2 LoginAction 1.2.1 //登录Action Java mail邮件开发 OA办公系统 ExitServlet package com.email.ser...
ElasticSearch的客户端操作
ElasticSearch的客户端操作 1、客户端介绍 官方文档地址: https://www.elastic.co/guide/en/elasticsearch/reference/current/index.html 实际开发中,有多种方式操作Elasticsearch: 客户端工具:发送http请求(RESTful风格)操作…...
如何快速的合并多个PPT使之成为一个PPT?
如何快速的合并多个PPT使之成为一个PPT? 项目过程中,经常给客户汇报,经常做PPT,有时候,需要把之前的ppt内容整合到新的内容中,如何快速合并以及使用呢? 幻灯片(PPT中)点…...
【微信小程序】列表滚动触底更新实现
微信小程序开发系列 目录 前言一、上拉触底事件函数onReachBottom二、实现 前言 在微信小程序开发中经常遇到分页列表需要滚动到底部之后进行请求数据更新,下面介绍如何进行触底更新分页展示。使用到页面上拉触底事件的处理函数onReachBottom。 一、上拉触底事件函…...
2023全国大学生数学建模竞赛A题B题C题D题E题思路+模型+代码+论文
目录 一. 2023国赛数学建模思路: 赛题发布后会第一时间发布选题建议,思路,模型代码等 详细思路获取见文末名片,9.7号第一时间更新 二.国赛常用的模型算法: 三、算法简介 四.超重要!!&…...
Git常见操作
一、全局配置命令 配置级别: –local(默认,高级优先):只影响本地仓库 –global(中优先级):只影响所有当前用户的git仓库 –system(低优先级):影响到全系统的git仓库 1…...
thinkphp6前后端验证码分离以及验证
1.验证码接口生成验证码: public function verify(){return captcha(); } 也可以自己写方法 2.验证方法和普通模式session验证有区别,需要改原文件: 修改后的代码: <?php // +---------------------------------------------------------------------- // | ThinkP…...
jenkinsfile自动部署接口
复制创建新流水线 从预先创建的job中获取 config.xml 或根据需要创建另一个 curl -X GET http://xxx.xxx.xxxx.com/job/backup-data/config.xml -u test:xxxxxxxxxxxxxxxxxx-o config.xml 生成Crumb CRUMB$(curl -s http://xxxxxxx.xxx.xxx.com/crumbIssuer/api/xml?xpathc…...
26. 删除有序数组中的重复项
26. 删除有序数组中的重复项 给你一个 升序排列 的数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。元素的 相对顺序 应该保持 一致 。然后返回 nums 中唯一元素的个数。 考虑 nums 的唯一元素的…...
vue父页面获取子组件绑定值
<el-form-item label"图文详情" prop"imageText"><div><el-button type"primary" link>组件</el-button><WangEditor v-model"ruleForm.imageText"></WangEditor></div> </el-form-item…...
FPGA_学习_17_IP核_ROM(无延迟-立即输出)
由于项目中关于厂商提供的温度-偏压曲线数据已经被同事放在ROM表了,我这边可用直接调用。 今天在仿真的时候,发现他的ROM表用的IP核是及时输出的,就是你地址给进去,对应地址的ROM数据就立马输出,没有延迟。 我打开他的…...
CentOS7.6安装mysql8.0.34
一、查看服务器相关信息 cat /etc/redhat-release cat /proc/version [rootlocalhost ~]# cat /etc/redhat-release CentOS Linux release 7.6.1810 (Core) [rootlocalhost ~]# cat /proc/version Linux version 3.10.0-957.el7.x86_64 (mockbuildkbuilder.bsys.centos.org) …...
SCF金融公链新加坡启动会 链结创新驱动未来
新加坡迎来一场引人瞩目的金融科技盛会,SCF金融公链启动会于2023年8月13日盛大举行。这一受瞩目的活动将为金融科技领域注入新的活力,并为广大投资者、合作伙伴以及关注区块链发展的人士提供一个难得的交流平台。 在SCF金融公链启动会上, Wil…...
JavaScript【实例、静态方法与属性、原型链、instanceof 运算符、Object 对象的相关方法、对象的继承、多重继承、严格模式】(十九)
目录 实例、静态方法与属性 实例方法和静态方法...
【Git】本地搭建Gitee、Github环境
本地 (Local) 1、使用命令生成公钥(pub文件) 1. $ ssh-keygen -t rsa -C "xxxxxxxemail.com" -f "github_id_rsa" 2. $ ssh-keygen -t rsa -C "xxxxxxxemail.com" -f "gitee_id_rsa" …...
学习ts(四)联合类型、交叉类型、类型断言
联合类型 使用联合类型定义属性和方法,只要符合其中一种即可 let myPhone: string | number 010-7788 // let myPhone1: string | number true 因为没有包含boolean值 会报错const fn (something: number | boolean): boolean > {return !!something }con…...
Linux 内核与架构速查
Linux 内核与架构速查 博主博客 https://blog.uso6.comhttps://blog.csdn.net/dxk539687357 本文主要记录查询 Linux 计算机的内核与架构, 用于下载对应架构的第三方软件。 一、介绍 如上图所示, 有时候我们下载一些第三方软件, 软件会有很…...
【Java 动态数据统计图】动态数据统计思路案例(动态,排序,containsKey)五(117)
需求:前端根据后端的返回数据:画统计图; 1.动态获取地域数据以及数据中的平均值,按照平均值降序排序; 说明: X轴是动态的,有对应区域数据则展示; X轴 区域数据降序排序;…...
区块链碎碎念
现在的区块链早已过了跑马圈地的时代,现在还按照以前承接项目的方式做区块链只能是越来越艰难。经过几年的技术沉淀,做区块链项目的公司都已经没落的七七八八了。 区块链不是一个能够快速显现盈利能力的行业,相反这个行业目前的模式还是处于…...
【Axure高保真原型】引导弹窗
今天和大家中分享引导弹窗的原型模板,载入页面后,会显示引导弹窗,适用于引导用户使用页面,点击完成后,会显示下一个引导弹窗,直至最后一个引导弹窗完成后进入首页。具体效果可以点击下方视频观看或打开下方…...
PHP和Node.js哪个更爽?
先说结论,rust完胜。 php:laravel,swoole,webman,最开始在苏宁的时候写了几年php,当时觉得php真的是世界上最好的语言,因为当初活在舒适圈里,不愿意跳出来,就好比当初活在…...
定时器任务——若依源码分析
分析util包下面的工具类schedule utils: ScheduleUtils 是若依中用于与 Quartz 框架交互的工具类,封装了定时任务的 创建、更新、暂停、删除等核心逻辑。 createScheduleJob createScheduleJob 用于将任务注册到 Quartz,先构建任务的 JobD…...
江苏艾立泰跨国资源接力:废料变黄金的绿色供应链革命
在华东塑料包装行业面临限塑令深度调整的背景下,江苏艾立泰以一场跨国资源接力的创新实践,重新定义了绿色供应链的边界。 跨国回收网络:废料变黄金的全球棋局 艾立泰在欧洲、东南亚建立再生塑料回收点,将海外废弃包装箱通过标准…...
OpenPrompt 和直接对提示词的嵌入向量进行训练有什么区别
OpenPrompt 和直接对提示词的嵌入向量进行训练有什么区别 直接训练提示词嵌入向量的核心区别 您提到的代码: prompt_embedding = initial_embedding.clone().requires_grad_(True) optimizer = torch.optim.Adam([prompt_embedding...
IT供电系统绝缘监测及故障定位解决方案
随着新能源的快速发展,光伏电站、储能系统及充电设备已广泛应用于现代能源网络。在光伏领域,IT供电系统凭借其持续供电性好、安全性高等优势成为光伏首选,但在长期运行中,例如老化、潮湿、隐裂、机械损伤等问题会影响光伏板绝缘层…...
(转)什么是DockerCompose?它有什么作用?
一、什么是DockerCompose? DockerCompose可以基于Compose文件帮我们快速的部署分布式应用,而无需手动一个个创建和运行容器。 Compose文件是一个文本文件,通过指令定义集群中的每个容器如何运行。 DockerCompose就是把DockerFile转换成指令去运行。 …...
C#中的CLR属性、依赖属性与附加属性
CLR属性的主要特征 封装性: 隐藏字段的实现细节 提供对字段的受控访问 访问控制: 可单独设置get/set访问器的可见性 可创建只读或只写属性 计算属性: 可以在getter中执行计算逻辑 不需要直接对应一个字段 验证逻辑: 可以…...
【JVM面试篇】高频八股汇总——类加载和类加载器
目录 1. 讲一下类加载过程? 2. Java创建对象的过程? 3. 对象的生命周期? 4. 类加载器有哪些? 5. 双亲委派模型的作用(好处)? 6. 讲一下类的加载和双亲委派原则? 7. 双亲委派模…...
JavaScript 数据类型详解
JavaScript 数据类型详解 JavaScript 数据类型分为 原始类型(Primitive) 和 对象类型(Object) 两大类,共 8 种(ES11): 一、原始类型(7种) 1. undefined 定…...
