知识卡片

无状态请求同时带来水平伸缩和结果缓存两个好处

普通读书笔记卡 · 1807.b

内容

RESTful要求每个请求无状态——生成响应所需信息全部包含在请求本身,不依赖服务器记住之前发生过什么。这带来两个好处:任何后端服务器都能独立处理任何请求,负载均衡可简单分给任意多台机器;GET语义幂等,”URL+参数”本身就是天然缓存键,请求结果可直接缓存复用,无需额外机制判断查询是否相同。

参考来源

- 位置:《架构之美》第5章《面向资源的架构:在Web中》5.3节《Web》(源文件:程序之美系列套装(6册)团队之美、项目管理之美、架构之美、数据之美、测试之美、安全之美/_epub-src/OEBPS/Text/part0140.xhtml) - 结论依据:原文明确"为了努力促进水平的可伸缩性,RESTful方式要求请求是无状态的。这意味着生成响应需要的所有信息都要放在请求中……响应者的地址(URL的主要部分)加上请求的全部状态……构成了结果集的一个复合散列键"。 - 原始内容:为了努力促进水平的可伸缩性,RESTful方式要求请求是无状态的。这意味着生成响应需要的所有信息都要放在请求中……响应者的地址(URL的主要部分)加上请求的全部状态(URL层次路径加上查询参数)构成了结果集的一个复合散列键。