03 | 序列化:对象怎么在网络中传输?
本讲深入讲解RPC框架中的序列化机制,介绍JDK原生序列化、JSON、Hessian和Protobuf等常用方式,分析其性能、体积、兼容性与安全性。重点强调在选型时应优先考虑通用性、兼容性与安全性,其次才是性能与空间开销。同时指出使用中常见问题:对象过繁、过大、继承复杂或使用不支持类型。建议入参和返回值对象应简单、轻量、避免深层嵌套与复杂结构,以提升RPC调用的稳定性和性能。
什么是跨域
CORS(跨域资源共享)是W3C标准,允许浏览器向跨源服务器发起XMLHttpRequest请求,突破AJAX同源限制。需浏览器和服务器共同支持,主流浏览器均已兼容。通信过程由浏览器自动处理,开发者无需改变代码。分为简单请求与非简单请求:简单请求直接发送,携带Origin头;非简单请求先发起OPTIONS预检,确认后才执行实际请求。服务器通过设置Access-Control-Allow-Origin等响应头实现授权。相比仅支持GET的JSONP,CORS更灵活安全,支持所有HTTP方法。
什么是RESTful
RESTful是一种基于资源的API设计规范,主张用URI标识资源,HTTP动词操作资源,实现统一、标准的接口风格。它解决了传统接口路径混乱、行为不规范的问题,具有结构清晰、易于理解与扩展的优势,提升前后端协作效率与系统可维护性。(238字)
映射关系(1-1 1-n n-n)
本文介绍MyBatis中四种映射关系:一对一(属性与字段映射,可使用resultMap解决命名不一致)、一对多(如用户关联多个角色,通过`<collection>`实现)、多对一(如博客对应作者,使用`<association>`)及多对多(如用户与部门间关系,需借助中间类并通过集合映射)。
什么是跨域
CORS(跨域资源共享)是W3C标准,允许浏览器向跨源服务器发起XMLHttpRequest请求,突破AJAX同源限制。需浏览器和服务器共同支持,主流浏览器均已兼容。通信过程由浏览器自动完成,开发者无需特殊处理。核心在于服务器配置CORS响应头,如Access-Control-Allow-Origin等。CORS将请求分为简单请求和非简单请求,后者会先发送OPTIONS预检请求,验证通过后才执行实际请求。相比仅支持GET的JSONP,CORS支持所有HTTP方法,更为灵活安全。
什么是RESTful
RESTful是一种面向资源的API设计规范,主张用URI标识资源,HTTP动词(GET/POST/PUT/DELETE)操作资源状态,实现接口的统一与标准化。相比传统接口路径含动词、行为不规范的问题,RESTful结构清晰、易于理解与扩展,提升前后端协作效率与系统可维护性。
6.鉴权
本文介绍基于Spring Security与JWT实现客户端Token认证的完整方案,涵盖登录生成Token、请求验签、权限角色控制等细节。通过自定义过滤器与验证逻辑,结合Redis可扩展实现分布式会话管理,构建安全可靠的RESTful API防护体系。(238字)
不定参数入参
支持非JSON和JSON格式参数接收:非JSON通过@RequestBody、@RequestParam或基本类型传参;JSON可使用JSONObject或封装对象(如RequestParam)接收,支持@Valid注解进行参数校验,提升接口安全性与开发效率。(238字)
鉴权
本文介绍基于Spring Security与JWT实现客户端Token认证方案,涵盖登录鉴权、Token生成与验证全流程。通过自定义过滤器与认证逻辑,结合RBAC权限模型,保障Spring Boot应用安全。
4. 不定参数入参
支持非JSON格式(如@RequestBody、@RequestParam)和JSON格式入参处理,涵盖基本类型、封装对象及多参数场景。通过@Valid结合注解实现请求参数校验,提升接口安全性与稳定性,适用于Spring Boot等Web项目开发。