1、URL概述
URL:统一资源定位符(URL),常被称为网页地址或网址.作用是定位服务器的资源(比如HTML、CSS、图像)
2、URL标准格式
http://8.8.8.8:9001/search/search.php?keyword=code&page=1&total=10
注:
http为协议类型
8.8.8.8为服务器域名或IP地址
9001为服务器端口号
search/search.php为文件所在路径
keyword=code&page=1&total=10为发送给服务端的数据
在URL中规定利用“&”来 作为多个参数的分隔符,但当传输的数据中本身就带有&时服务端就会出错。
比如在浏览器上输入以下地址回车,&会破坏语法结构,从而导致服务端会认为密码是123,而不是123&123
http://8.8.8.8/index.php/?username=admin&password=123&123
当出现 这种情况时,我们可以利用RFC标准提供的URL编码方法解决
3、URL编码
URL编码会对上述有问题的字符进行编码,使其可以通过http安全传输。URL编码的字符都以“%”为前缀,其后是这个字符的二位十六进制ASCII代码。
URL编码与解码在线转换工具:URL解码 URL编码 在线URL解码/编码工具 iP138在线工具
常见的URL编码字符:
%3d =
%23 #
%25 %
%26 &
%20(+) 空格
我们将上述有问题的字符进行URL编码后得到以下URL:
URL:
http://8.8.8.8/index.php/?username=admin&password=123&123
URL编码:
http://8.8.8.8/index.php/?username=admin&password=123%26123
为什么我们在使用浏览器时碰不到这个问题?这是因为浏览器在发送数据时会自动将数据进行URL编码,在向服务端发送请求,然后服务端对URL进行解码,所以对于服务端来说始终都是正确的数据。