REST(Representational State Transfer)翻译为表述性状态转移。
Roy Thomas Fielding博士在2000年就读加州大学欧文分校期间发表的一篇学术论文《Architectural Styles and the Design of Network-based Software Architectures》,该文中提出了REST的6个特点,分别是:客户端
-服务端的、无状态的、可缓存的、统一接口、分层系统和按需编码。
REST是一种架构风格。在这种架构风格中,对象被视为一种资源(resource),通常使用概念清晰的名词命名。
REST的资源是可寻址的,通过HTTP1.1协议(RFC 2616)定义的通用动词方法(比如GET、PUT、DELETE、POST),使用URI协议(RFC 3305)来唯一表示某个资源公布出来的接口。
解读JAX-RS标准
JAX-RS是Java领域的REST式的Web服务的标准规范,是使用Java完成REST服务的基本约定。
Java领域中的Web Service是指实现SOAP协议的JAX-WS。直到Java EE 6(发布于2008年9月)通过JCP(Java Community Process)组织定义的JSR311,才将REST在Java领域标准化。
JSR311名为The Java API for RESTful Web Service,即JAX-RS。此后,JSR311进行了一次升级(2009年9月),即JAX-RS1.1。JAX-RS诞生后,时隔5年(2013年5月)发布的Java EE 7包含了JSR339,将JAX-RS升级到JAX-RS2。JAX-RS2在前面版本的基础上增加了很多实用性的功能。比如对REST客户端API的定义,异步REST等,对REST的支持更加完善和强大。