【发布时间】:2014-05-14 15:43:06
【问题描述】:
在浏览器中使用 URI 之前是否有必要对其进行百分比编码,即当我们在浏览器中编写 URI 时,它是否已经进行了百分比编码,或者浏览器负责对 URI 进行编码并将请求发送到服务器?
【问题讨论】:
在浏览器中使用 URI 之前是否有必要对其进行百分比编码,即当我们在浏览器中编写 URI 时,它是否已经进行了百分比编码,或者浏览器负责对 URI 进行编码并将请求发送到服务器?
【问题讨论】:
您会发现大多数现代浏览器都会接受未编码的 URL,并且它们通常能够自己对保留字符进行编码。
但是,依赖它是不好的做法,因为您最终可能会得到不可预测的结果。例如,如果您使用 GET 请求将表单数据发送到服务器,并且有人输入了 # 符号,则浏览器会以不同方式解释它是否已编码或未编码。
简而言之,如果您期望请求中有保留字符,最好手动对数据进行编码以获得可预测的结果。幸运的是,网络上使用的大多数编程语言都为此内置了函数。
补充一点,您不需要对整个 URL 进行编码 - 通常是您在 GET 请求中发送的数据被编码。例如:
http://www.foo.com?data=This%20is%20my%20encoded%20string%20%23
【讨论】: