Java面试题更新 2026-08-05

请说明 RESTful 风格接口的核心设计理念与主要特征,并阐述其与普通 HTTP 接口的差异。

后端开发技术原理技术选型HTTP

考察说明

考查对 REST 架构风格核心原则及实践要点(资源、HTTP 方法、状态码、无状态等)的掌握程度。

回答思路

  1. 【回答框架 1】REST(Representational State Transfer)是一种基于 HTTP 协议的架构风格,核心是将一切数据视为资源,通过 URI 唯一标识。其核心特征包括:资源导向、统一接口、无状态、可缓存、分层系统等。
  2. 【回答框架 2】统一接口通过 HTTP 方法表达对资源的操作:GET 获取资源,POST 创建资源,PUT 整体更新,PATCH 部分更新,DELETE 删除。每个方法都应具备幂等性(除 POST 外),且返回合适的 HTTP 状态码(如 200、201、204、400、404、500)。
  3. 【回答框架 3】RESTful 接口强调无状态性,即服务端不保存客户端上下文,每次请求需包含全部必要信息(如认证令牌),这有利于水平扩展和负载均衡。同时,资源之间通过超媒体(HATEOAS)建立关联,客户端可动态发现接口。
  4. 【回答框架 4】与普通 HTTP 接口相比,RESTful 接口更注重资源的抽象和规范性,普通接口可能只关注动作(如 /getUser),而 RESTful 使用名词复数(如 /users),并合理利用 HTTP 语义,提升接口的可读性和自解释性。
  5. 【关键点 1】REST 是面向资源的架构风格,URI 标识资源,HTTP 方法定义操作。
  6. 【关键点 2】无状态性要求请求携带完整上下文,便于扩展。
  7. 【关键点 3】合理使用 HTTP 状态码表达结果,如 201 表示创建成功。
  8. 【关键点 4】REST 是风格而非标准,实践中不必完全拘泥于规范。
  9. 【易错点 1】将 REST 单纯理解为 URL 规范,忽视 HTTP 方法的正确使用。
  10. 【易错点 2】无状态性被误解为不支持会话,实际上可通过令牌等机制传递状态。
  11. 【易错点 3】忽略状态码的语义,常常返回 200 包裹错误信息,降低接口可读性。