什么是REST
Respresentational State Transfer,即表述性状态转移,一种软件架构风格(或模式)
状态的定义
让客户端维护应用状态,并确保服务端向服务器发出的请求都包含理解请求所需的全部信息,而服务器不应该维护该状态(服务器无状态,具有可伸缩性)
REST架构风格的不足
-
统一接口带来的性能损失
由于信息使用标准化的形式转移,不能使用特定与应用需求的形式
-
请求响应式交互,使得服务端无法通知客户端
客户端要想获得最新状态,需要不停向服务端发送请求,既浪费贷款又无法满足高时效性的需求
-
缓存的存在,使得一致性问题突出
客户端获得的数据可能是缓存了的旧数据,服务器没有主动通知更新缓存的机制,使得分布式系统一致性问题突出
-
HTTP明文传输带来的安全性问题
HTTP使用明文传输,且不验证报文完整性,使得报文易被篡改,全栈使用HTTPS解决安全性问题又会带来较高性能开销
-
HTTP动词表达力不够