不明白JSON和序列化什么关系,查了很多解释说,是前后端远程通讯的时候,把传输的对象序列化为二进制的数据流传输,这样就更糊涂了.
第一,我们说的前后台用json传输,json不只是一种数据格式么,所以传输的时候就写成json格式,像form表单提交一样传输数据不就可以了?
第二,什么叫转化为二进制,难道form表单的数据或者所有网络传输的数据不都是二进制010101么,那什么还要转二进制呢?
第三,我所理解的序列化就是把它像保存文件一样保存在内存或本地,传输json为何要先保存(序列化)在本地,再传输呢?
所以传输数据中,json和序列化到底什么关系呢?
背景:
1.java对象不能跨进程传递
2.byte数组可被各种stream处理
所以,想传输java对象,就要把对象转换为byte数组。
概念
序列化:按照编码协议把java对象转化为byte数组。
反序列化:按照编码协议把byte数组转化为java对象。
编码协议:json 表单 protobuf thrift 等等,哪怕是你自定义的协议,能够编码解码就行。
传输协议:http ftp thrift grpc dubbo等,以及自定义。
网络五层:
应用层:就是传输协议加上编码协议,比如http+json
传输层:tcp udp 负责解析端口
网络层:ip 负责解析ip地址
链路层 arp pppoe之类的 比如拨号上网
物理层 光纤 卫星等传输01
作者:奋斗无底线
链接:https://www.zhihu.com/question/67037207/answer/358740300
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。