url编码是一种浏览器用来打包表单输入的格式。浏览器从表单中获取所有的name和其中的值 ,将它们以name/value参数编码(移去那些不能传送的字符,将数据排行等等)作为URL的一部分或者分离地发服务器。
一个 URL 的基本组件包括协议、域名、端口号、路径和查询字符串,其中路径和查询字符串之间使用问号?
隔离,示例如下:
http://www.biancheng.net/index?param=10
其中域名为 http://www.biancheng.net,路径为 index,查询字符串为 param=1。
URL 中规定了一些字符(:/ ? # [ ] @)用来分隔不同的 URL 组件,这些字符被称为保留字符。例如:
- 冒号:用于分隔协议和主机组件,斜杠用于分隔主机和路径
- 问号:用于分隔路径和查询参数等。 还有一些保留字符(! $ & * + , ; =)起到分割 URL 不同组件的作用,比如:
=
用于表示查询参数中的键值对&
符号用于分隔查询多个键值对。
哪些字符需要编码。主要分为以下三种情况:
- ASCII 表中没有对应可显示字符的,例如汉字。
- 不安全字符,包括:# ”% <> [] {} | \ ^ ` ~ 。
- 不当做保留字符来使用的保留字符,即& / : ; = ? @ 。
例如:%66%6c%61%67%7b%61%6e%64%20%31%3d%31%7d
解码时可直接查询url解码工具