smtp协议只能传送ascii编码的数据,所以产生了mime,
mime可以让音频、图像等数据用base64编码,比如:
转换前: 10101101,10111010,01110110
转换成base64后: 00101011, 00011011 ,00101001 ,00110110
实际上就是每6位加个0。
为什么每6位加个0就可以传送了?
网络传送数据,其实本质都是传送0和1,不管是音频、图像还是文本其实最终传送的都是0和1,所谓的编码解码只是把这些0和1按照一种方法翻译成字符,而这些翻译都是在传送的两端完成的,与传送无关。
所以”smtp规定只能传送ascii编码的数据“这个是怎么规定的,传送的都是0和1啊,,本人传送其他编码的数据也是0和1,不都一样吗?。
解决方案:20分
电脑内存或文件内容只是一个一维二进制字节数组及其对应的二进制地址;
人脑才将电脑内存或文件内容中的这个一维二进制字节数组及其对应的二进制地址的某些部分看成是整数、有符号数/无符号数、浮点数、复数、英文字母、阿拉伯数字、中文/韩文/法文……字符/字符串、汇编指令、函数、函数参数、堆、栈、数组、指针、数组指针、指针数组、数组的数组、指针的指针、二维数组、字符点阵、字符笔画的坐标、黑白二值图片、灰度图片、彩色图片、录音、视频、指纹信息、身份证信息……
推荐使用WinHex软件查看硬盘或文件或内存中的原始字节内容。
解决方案:20分
1)6+1 =7 刚好是在 ASCII范围
2)ASCII,可用用文字表示,这样有错误,肉眼就可以判断出来了
3)编码传输为了方便 通常是 8 ~10 Bits
多余的1~3 bits 可以用来做 奇偶校验,
这样简单错误,很容易就判断出来了
4)ASCII 自带控制码,有时候可以在数据中,插入控制信息。所以就规定只能传输ASCII
具体原因,还要查资料。
和当时的条件有关系。