知识卡片
无状态请求同时带来水平伸缩和结果缓存两个好处
内容
RESTful要求每个请求无状态——生成响应所需信息全部包含在请求本身,不依赖服务器记住之前发生过什么。这带来两个好处:任何后端服务器都能独立处理任何请求,负载均衡可简单分给任意多台机器;GET语义幂等,”URL+参数”本身就是天然缓存键,请求结果可直接缓存复用,无需额外机制判断查询是否相同。
参考来源
- 位置:《架构之美》第5章《面向资源的架构:在Web中》5.3节《Web》(源文件:程序之美系列套装(6册)团队之美、项目管理之美、架构之美、数据之美、测试之美、安全之美/_epub-src/OEBPS/Text/part0140.xhtml)
- 结论依据:原文明确"为了努力促进水平的可伸缩性,RESTful方式要求请求是无状态的。这意味着生成响应需要的所有信息都要放在请求中……响应者的地址(URL的主要部分)加上请求的全部状态……构成了结果集的一个复合散列键"。
- 原始内容:为了努力促进水平的可伸缩性,RESTful方式要求请求是无状态的。这意味着生成响应需要的所有信息都要放在请求中……响应者的地址(URL的主要部分)加上请求的全部状态(URL层次路径加上查询参数)构成了结果集的一个复合散列键。