概念
Base-64編碼可以將任意一組字節(jié)轉(zhuǎn)換為較長的常見文本字符序列寞酿,從而可以合法地作為首部字段值闷叉。Base-64編碼將用戶輸入或二進(jìn)制數(shù)據(jù)棍弄,打包成一種安全格式陷舅,將其作為HTTP首部字段的值發(fā)送出去倒彰,而無須擔(dān)心其中包含會破壞HTTP分析程序的冒號、換行符或二進(jìn)制值莱睁。
使用
使用呢待讳,網(wǎng)上很多例子,如果非要在這篇博客寫上的話仰剿,就無異于復(fù)制粘貼了创淡,所以就不過多贅述了。
這里附上文章地址:java base64編碼的三種方式
使用的原因
其中Ted Zyzsdy的答案相比較之下還是非常不錯的。
適用場景
對證書來說部凑,特別是根證書露乏,一般都是作Base64編碼的,因?yàn)樗诰W(wǎng)上被許多人下載涂邀。電子郵件的附件一般也作Base64編碼的瘟仿,因?yàn)橐粋€附件數(shù)據(jù)往往是有不可見字符的
優(yōu)劣勢:
槽點(diǎn)
1、使用BASE64編碼后比勉,會導(dǎo)致數(shù)據(jù)量增加33%劳较,對于手機(jī)App來講驹止,不可容忍。流量啊观蜗,貴啊臊恋,你是運(yùn)營商派來的嗎?
2墓捻、額外的編碼工作帶來的CPU開銷捞镰,電量開銷。(雖然開銷很小毙替,蚊子肉也是肉啊親) 3岸售、現(xiàn)有后端框架,基本上都能輕松處理上傳任務(wù)厂画。
好處
一個xml當(dāng)中包含另一個xml數(shù)據(jù)凸丸,此時如果將xml數(shù)據(jù)直接寫入顯然不合適,將xml進(jìn)行適當(dāng)編碼存入較為方便袱院,事實(shí)上xml當(dāng)中的字符一般都是可見字符(0-127之間)屎慢,但是由于中文的存在,可能存在不可見字符忽洛,直接將字符打印在外層xml的數(shù)據(jù)中顯然不合理腻惠,那么怎么辦呢?可以使用base64進(jìn)行編碼欲虚,然后存入xml集灌,解碼反之
另一個,比如http協(xié)議當(dāng)中的key value字段复哆,必須進(jìn)行URLEncode 不然出現(xiàn)的等號可能使解析失敗 空格也會使http請求解析出現(xiàn)問題欣喧,比如 請求行就是以空格來劃分的? POST /guowuxin/hehe HTTP/1.1