对于序列化的理解

什么是序列化?将对象的状态信息转换为可以存储或传输的形式的过程,在序列化期间,对象将其当前状态写入到临时存储区或持久性存储区,之后,便可以通过从存储区中读取或反序列化对象的状态信息,来重新创建该对象。

可以看到,序列化的作用在于储存、传递对象的状态信息。

那么,前端传输信息到后端跟序列化有关系吗?

就我目前的知识储备来看,是没有关系的。解释如下:

例如,前端实现登录效果。通过填写表单,将账号密码通过http协议传输到后端,后端取出账号密码进行校验。在这个过程中,账号密码应该是存在于http协议的请求头中的。后端直接从请求头中提取账号密码即可。而对象序列化可不可以用来传输登录信息呢?

当然是可以的。

我们先在前端new一个User对象(这个User对象必须继承java.io.Serializable接口),然后把账号密码通过set赋值的方式赋给该User对象。然后将其转成二进制流,放入http协议的消息主体中,然后我们在后端程序中通过IO来读取消息主体中的二进制流,还原成User对象(准确地说,是带有状态信息的User对象),然后从中提取账号密码等信息,把这些信息赋值给我们后端自己创建的User对象中(或者直接通过二进制流在jvm中创建一个已经初始化了的User对象),接着再使用这个User对象进行登录验证。

两种方式虽然可以实现一样的功能,但是它们之间是有本质区别的,不能搞混淆了。

原文地址:https://www.cnblogs.com/2020-0202/p/13743468.html