URL encoding(URL编码),也称作百分号编码(Percent-encoding),是指特定上下文的统一资源定位符(URL)编码机制
UrlEncode:将字符串以URL编码
返回值:字符串
函数种类:编码处理
编码原理:
将需要转码的字符转为16进制,然后从右到左,取4位(不足4位直接处理),每2位做一位,前面加上%,编码成%XY格式。
URL encode的实质就是正确的使用percent encode(百分号编码)
比如:中ASCII码是-10544,对应的16进制是FFFFFFFFFFFFD6D0,那么urlencode编码结果是:%D6%D0
目前编码原理:
在WWW最初时,做法是将字符流转换成字节流,按照ASCII字符与字节一一对应可相互转换,使用对应ASCII字符的整型值作为%的后两个16进制字符,构成percent编码。后来出现了多种percent编码生成方法,导致了URI的难以识别。
目前做法,指定或系统默认的使用UTF8转成字节流,每个字节编成一个percent编码,例如:中文“网易”的URL编码为%e7%bd%91%e6%98%93,而其UTF8字节流为e7 bd 91 e6 93,可以看出其一一对应关系

原则:在URI的构成字符中,最安全的方案是正确使用“保留字符” 和 “非保留字符”的并集
保留字符: 在URL中起到职能型的字符,比如 & ,? 。所以被URL规则给“保留”了。
保留字(Reserved):! * ' () ; : @ & = + $ , / ? # []
非保留字(Unreserved):0到9的数字 - _ . ~  a到z  A到Z

遵循原则:
1 不要对Unreserved(非保留字)做percent encode(百分号编码)
2 除了保留字和非保留字之外的所有字符,必须进行percent encode(百分号编码)
3 当保留字符不用于URL分隔符,而是用于其他的位置,比如query后面的value,要对这时用到的保留字做percent encode(百分号编码)

最新文章

  1. WebLogic中的一些基本概念
  2. springMVC 错误页面配置
  3. css z-index属性使用过程中遇到的问题
  4. python 延迟绑定
  5. Constructing Roads In JGShining's Kingdom(HDU1025)(LCS序列的变行)
  6. JS打印页面指定区域
  7. LAMP配置虚拟目录
  8. Android 模糊效果
  9. Android中振动器(Vibrator)的使用
  10. iOS 10.10 10.11 10.12 安装升级CocoPods
  11. shell---命令解析器---简单操作快捷键
  12. 【ASP.NET Core快速入门】(八)Middleware管道介绍、自己动手构建RequestDelegate管道
  13. bottle源码
  14. 【CF997E】Good Subsegments (线段树+单调栈)
  15. BPTT for multiple layers
  16. Android悬浮窗及其拖动事件
  17. 【刷题】BZOJ 3033 太鼓达人
  18. iCheck的全选和获取value
  19. ROS学习笔记三(理解ROS节点)
  20. 五个步骤教你理清Redis与Memcached的区别

热门文章

  1. lib异步中断
  2. linux内核 概念
  3. 小猿圈-IT自学人的小圈子 https://book.apeland.cn/details/54/
  4. react 项目 mock数据
  5. docker限制容器日志大小
  6. linux下安装虚拟环境
  7. [Python]Python3调用java代码
  8. XML -- XML基础知识
  9. TensorFlow使用记录 (十四): Multi-task to MNIST + Fashion MNIST
  10. axios的post传参时,将参数转为form表单格式