为什么人们要对 URI 进行三次转义?

问题描述

我问这个问题是因为我找到了答案 here,我很好奇人们为什么这样做。

例如,我们下面有一个 URI,它被转义了 3 次。为什么人们需要逃避它 3 次而不是 1 次?这背后有什么原因吗?

https://s3.amazonaws.com/test/testSite/product/image_folder/Z1-00034-01/1623934721778.jpeg%25253FX-Amz-Algorithm%25253DAWS4-HMAC-SHA256%252526X-Amz-Date%25253D20210722T050758Z%252526X-Amz-SignedHeaders%25253Dhost%252526X-Amz-Expires%25253D599%252526X-Amz-Credential%25253DAKIA4Z2VUPBRcpyFDP4G%2525252F20210722%2525252Fus-east-1%2525252Fs3%2525252Faws4_request%252526X-Amz-Signature%25253D259df0ed0fd8f827e74c612ff8d87e65e2f2c8d68f75a2f06eb71a84de3847a1%253FX-Amz-Algorithm%253DAWS4-HMAC-SHA256%2526X

在 unescape 3 次之后,我们有

const str = "https://s3.amazonaws.com/test/testSite/product/image_folder/Z1-00034-01/1623934721778.jpeg%25253FX-Amz-Algorithm%25253DAWS4-HMAC-SHA256%252526X-Amz-Date%25253D20210722T050758Z%252526X-Amz-SignedHeaders%25253Dhost%252526X-Amz-Expires%25253D599%252526X-Amz-Credential%25253DAKIA4Z2VUPBRcpyFDP4G%2525252F20210722%2525252Fus-east-1%2525252Fs3%2525252Faws4_request%252526X-Amz-Signature%25253D259df0ed0fd8f827e74c612ff8d87e65e2f2c8d68f75a2f06eb71a84de3847a1%253FX-Amz-Algorithm%253DAWS4-HMAC-SHA256%2526X";

const o = unescape(unescape(unescape(str)));

console.log(o);

也许对其他人很明显,但我不知道。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)