以前在做支付寶支付中遇見,我們一般情況下把 url __ UrlEncode __ 一下吵护,并不需要base64
知乎的上的解答:https://www.zhihu.com/question/19711134
-
base64 是什么鬼?
由于 ASCII 碼稱為了國際標(biāo)準(zhǔn),所以我們要把其它字符轉(zhuǎn)成 ASCII 就要用到 base64。
utf-8 -> base64(編碼) -> ASCII
ASCII -> base64(解碼) -> utf-8這樣就可以讓只支持 ASCII 的計算機支持 utf-8 了。
具體的算法轉(zhuǎn)換方法:廖雪峰老師的博客
-
UrlEncode
例子:www.baidu.com?a=nihao
上面的例子可以看出 a 的值是你好
如果要把 a 的值換成 “=” 字符呢童叠?這樣嗎:www.baidu.com?a== ,肯定不行啦课幕,“=” 是特殊字符
所以把 “=” UrlEncode后 “%3d”
www.baidu.com?a=%3d服務(wù)器拿到 a 解碼得到 “=”
所以說 url 是限制性編碼
- 回過頭看看厦坛,支付寶為什么要 base64,猜測如下
為了減輕服務(wù)器壓力乍惊,加密與解密都需要 base64 轉(zhuǎn)碼杜秸,放在支付寶服務(wù)器上 base64 不如分發(fā)給各個用戶的服務(wù)器。 減少了 cpu 的運算润绎。