URL与URL编码

URL是统一资源定位符,用于定位服务器资源。标准格式包括协议、服务器地址、端口和路径等。当URL中的数据包含特殊字符如&时,可能导致解析错误。为解决此问题,可以使用URL编码,将特殊字符转换为%加十六进制值的形式,浏览器在发送请求时会自动进行编码。URL编码和解码是保证数据正确传输的关键步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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进行解码,所以对于服务端来说始终都是正确的数据。 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值