1. 编码
a. 压缩:文本、图片、视频。
i. 视频图片的编解码。
ii. 有损压缩和无损压缩。
b. 二进制数据(非文本)Base64/58(去掉难区分的字符,比特币)
"Man"不是非文本,仅用作举例
i. 用途:
1) 用文本传输非文本数据
a) 正常情况下图片不编码,因数据增大1/3。
2) 防偷窥
ii. 缺点:因6位变8位,数据会增大约1/3。
c. 文本:
i. (仅用于URL的表单部分)字符串--->URL百分号编码:
1) 作用:URL表单里移去不能传送的字符,避免解析错误。
2) 编码规则:
URL编码遵循下列规则: 每对name/value由&;符分开;每对来自表单的name/value由=符分开。如果用户没有输入值给这个name,那么这个name还是出现,只是无值。任何特殊的字符(就是那些不是简单的七位ASCII,如汉字)将以百分符%用十六进制编码,当然也包括象 =,&;,和 % 这些特殊的字符。其实url编码就是一个字符ascii码的十六进制。不过稍微有些变动,需要在前面加上“%”。比如“\”,它的ascii码是92,92的十六进制是5c,所以“\”的url编码就是%5c。
a) Ascii 英[ˈæski]
b) 举例:浏览器自动编码
不自动编码 自动编码
浏览器地址栏给人看的 https://baike.baidu.com/item/API/10154?fr=aladdin https://baike.baidu.com/item/URL编码/3703727?fr=aladdin
其实的真正请求链接 https://baike.baidu.com/item/API/10154?fr=aladdin https://baike.baidu.com/item/URL%E7%BC%96%E7%A0%81/3703727?fr=aladdin
ii. 字符集:
1) ASCII:128个字符,1字节
2) IS0-8859-1:对ASCII进行扩充,1字节
3) Unicode字符集:13万个字符,多字节
a) UTF-8编码分支:Unicode的编码分支
b) UTF-16编码分支:Unicode的编码分支
4) GBK/GB2312/GB18030:中国自研标准,多字节。字符集+编码:既是字符集也是编码。
2. Hash(MD5其实不能算加密算法,但国内普遍错了):
a. 作用:提取摘要信息当数字指纹。
i. 唯一性验证
ii. 快速查找
iii. 签名和验证:数据完整性验证
iv. 隐私保护
3. 加密
a. 对称加密:
i. 优点:效率高。
ii. 缺点:如何保证只有咱俩有这个密钥。
b. 非对称加密(RSA、DSA):公钥私钥。用作数字签名。
i. 缺点:性能很差。
4. 序列化:序列化是把数据由内存中的对象(而不是某种具体的格式)转换成字节序列。序列化后就可传输和存储。
a. 区别于编码:编码是把数据由一种数据格式转换成另一种数据格式。