嵌入式开发中http传输二进制数据的注意事项
2016-11-28 15:46
267 查看
嵌入式编程习惯使用二进制数据进行存储,二进制数据较字符串占用空间小的多,但是网络传输中一般都是传输字符串,因此与云端进行通讯时,出现了问题。
以下归纳总结了二进制在网络传输中的处理方法:
1、标准base64编码
首先需要将二进制数据进行base64编码,经过base64编码后,数据中将不存在0值得情况,解决了二进制数据0值为题,但是将引入一个新的问题。base64编码中使用的两个字符‘+’和‘/’在http传输中会被替换掉,因此如果数据刚好出现这两个字符那么悲剧就会发生;另外base64编码需要补‘=’号、那么也将中招。此时就需要新的方案解决问题。
2、url编码
为了解决1中遗留的问题,可以将数据再进行一次url编码,这样经过http后,服务器需要进行url和base64两次解码,即可得到源二进制数据
3、自定义base64编码
如果不想进行两次编码,那么可以将1中的标准base64编码中的‘+’、‘/’、‘=’替换为非url关键字的‘-’、‘.’、‘_’,这样经过http传输的数据服务器可以完整接收,服务器只需按照自定义的base64编码格式进行解码即可得到原二进制数据。
以下归纳总结了二进制在网络传输中的处理方法:
1、标准base64编码
首先需要将二进制数据进行base64编码,经过base64编码后,数据中将不存在0值得情况,解决了二进制数据0值为题,但是将引入一个新的问题。base64编码中使用的两个字符‘+’和‘/’在http传输中会被替换掉,因此如果数据刚好出现这两个字符那么悲剧就会发生;另外base64编码需要补‘=’号、那么也将中招。此时就需要新的方案解决问题。
2、url编码
为了解决1中遗留的问题,可以将数据再进行一次url编码,这样经过http后,服务器需要进行url和base64两次解码,即可得到源二进制数据
3、自定义base64编码
如果不想进行两次编码,那么可以将1中的标准base64编码中的‘+’、‘/’、‘=’替换为非url关键字的‘-’、‘.’、‘_’,这样经过http传输的数据服务器可以完整接收,服务器只需按照自定义的base64编码格式进行解码即可得到原二进制数据。
相关文章推荐
- 用unity开发hololens应用的传输数据的注意事项
- 嵌入式开发中网络性能测试工具iperf的使用方法和注意事项
- ADO写二进制数据时的注意事项
- 前端基于react,后端基于.net core2.0的开发之路(2) 开发环境的配置,注意事项,后端数据初始化
- TCP/IP 数据流套接字传输注意事项
- SolidWorks异步模式开发,使用COM接口获取Array数据时的注意事项
- http协议传输二进制数据以及对输入流(php://input)和http请求的理解
- 使用Shell进行Mysql间数据以文本形式传输及注意事项
- WCF 通过net tcp 协议 ,在服务端服务器和客户端服务器之间传输数据,注意配置事项
- 嵌入式系统开发入门二:C语言的几个注意事项
- 嵌入式QT开发步骤即注意事项
- RCA:未注意Curl-library Post 1024以上字节时的HTTP/1.1特性导致 HessianPHP 传输数据失败
- 基于Xmpp openfire asmack 即时通讯开发 传输文件注意事项
- java之数据包装类和封装类于开发中的注意事项
- 增量数据传输 思路与注意事项
- 在http协议中传输二进制的数据--base64实现
- 嵌入式开发中网络性能测试工具iperf的使用方法和注意事项
- 新手入门嵌入式开发注意事项
- 服务端开发指南与最佳实战 | 数据存储技术 | MySQL(04) 索引使用的注意事项
- 嵌入式软件开发注意事项一