Skip to main content

REST架构

定义

REST(表述性状态转移)是由Roy Fielding在2000年提出的软件架构风格,用于设计网络应用程序。它的核心理念是将所有内容视为资源,并通过资源的表述来传递状态。 REST架构基于以下关键约束:

  • 它要求客户端和服务器分离,通过统一接口通信;服务器不保存客户端状态(无状态);支持缓存机制来提高性能;采用分层系统设计;使用标准HTTP方法(GET、POST、PUT、DELETE等)来操作资源。
  • 每个资源都有唯一的标识符(URI),客户端通过HTTP方法和URI来请求资源的特定表述(如JSON、XML等)。这种设计使系统具有更好的可扩展性、简单性和可维护性。

涉及到的技术栈

技术名称作用
REST表述性状态转移的架构风格,通过HTTP协议实现资源的表现层状态转化
HTTP MethodsREST架构中的基本操作方法,包括GET、POST、PUT、DELETE等
GET用于获取资源,是幂等的,不会改变资源状态
POST用于创建新资源,非幂等,每次调用会产生新的资源
PUT用于更新资源,是幂等的,多次调用结果相同
DELETE用于删除资源,是幂等的,多次调用结果相同
HTTP状态码表示服务器响应状态的三位数字代码
2xx状态码表示请求成功,如200(OK)、201(Created)
3xx状态码表示重定向,如301(永久重定向)、302(临时重定向)
4xx状态码表示客户端错误,如400(错误请求)、404(未找到)
5xx状态码表示服务器错误,如500(服务器内部错误)、503(服务不可用)
URI统一资源标识符,用于标识和定位资源
HATEOAS超媒体作为应用状态引擎,提供资源相关的链接信息
Content-TypeHTTP头部字段,指定资源的媒体类型(如JSON、XML)

流程图