知识卡片
资源表征状态转移四个概念的阅读文章类比
内容
REST(Representational State Transfer)的四个核心术语晦涩难懂,但用”阅读 一篇文章”来类比就很好理解。资源(Resource)是文章本身蕴含的信息,无论你 是买书、刷网页还是打印出来读,呈现方式不同,但信息不变,始终是同一份资源。 表征(Representation)是这份信息与用户交互时的具体表示形式:浏览器请求 HTML格式,服务端返回HTML,你也可以拿到同一资源的PDF/Markdown版本——都是 同一资源的不同表征,这与软件分层架构里的”表示层”概念一致。状态(State) 是只有在特定语境下才有意义的上下文信息,例如”给我下一篇”这个请求依赖”你 现在读的是哪一篇”,这类上下文可以由服务端记住(有状态)也可以由客户端每次 主动告知(无状态)。转移(Transfer)指服务端把”当前阅读的文章”这个状态 转变成”下一篇”的动作,这个转变动作只能由掌握资源的服务端来完成。理解这 四个词,才能理解REST真正谈论的是”客户端与服务端之间如何就资源的表现形式 和状态变化达成协作”,而不是望文生义的字面意思。
参考来源
- 位置:《凤凰架构:构建可靠的大型分布式系统》第2章"访问远程服务"2.2.1节
"理解REST"(源文件:_epub-src对应OEBPS/Text/chapter20.xhtml)
- 结论依据:原文用"阅读一篇文章"的具体场景逐一定义资源、表征、状态、
转移四个概念(如HTML/PDF是文章资源的不同表征,"下一篇"依赖当前阅读
状态),直接支撑本卡片对REST术语的类比解释。
- 原始内容:资源:你现在正在阅读的这篇文章的内容本身……表征:服务端向
浏览器返回的这个HTML就被称为"表征"……状态:这类在特定语境中才能产生的
上下文信息被称为"状态"……转移:服务端通过某种方式,把"用户当前阅读的
文章"转变成"下一篇文章",这就被称为"表征状态转移"。