Rest之路 - Rest架构中的重要概念

资源

在Rest的架构之内,讲一切内容都是为资源。每一个资源都被定义为一个URI。

格式: <protocol>://<service-name>/<ResourceType>/<ResourceID>

除此之外,URI的另一个关键部分为“VERB“, 一直对应我们也称他们为方法,通常有四种形式 -- GET/POST/PUT/UPDATE

关于资源的表述,Rest有多种形式的表述方式,其中以XML和JSON最为常用。

消息

Rest 采用HTTP协议作为client和server之间的传输媒介。 client 通过发送 HTTP Request 到 Server;Server 发送 HTTP Response 到 client。

为了方便理解,通过图文并茂的方式来解释一下 HTTP Request/Response.

以下部分摘自: https://www.tutorialspoint.com/restful/restful_messages.htm

HTTP Request

A HTTP Request has five major parts:

  • Verb- Indicate HTTP methods such as GET, POST, DELETE, PUT etc.
  • URI- Uniform Resource Identifier (URI) to identify the resource on server
  • HTTP Version- Indicate HTTP version, for example HTTP v1.1 .
  • Request Header- Contains metadata for the HTTP Request message as key-value pairs. For example, client ( or browser) type, format supported by client, format of message body, cache settings etc.
  • Request Body- Message content or Resource representation.

HTTP Response

A HTTP Response has four major parts:

  • Status/Response Code- Indicate Server status for the requested resource. For example 404 means resource not found and 200 means response is ok.
  • HTTP Version- Indicate HTTP version, for example HTTP v1.1 .
  • Response Header- Contains metadata for the HTTP Response message as key-value pairs. For example, content length, content type, response date, server type etc.
  • Response Body- Response message content or Resource representation.

Example

As we have explained in RESTful Web Services - First Application tutorial, Let‘s put http://localhost:8080/UserManagement/rest/UserService/users in POSTMAN with GET request. If you click on Preview button residing near send button of Postman and then click on Send button, you may see the following output.

Here you can see, the browser sent a GET request and received a response body as XML.

时间: 2024-08-10 23:29:50

Rest之路 - Rest架构中的重要概念的相关文章

系统架构中几个概念名词

QPS QPS每秒查询率 每秒查询率QPS是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准,在因特网上,作为域名系统服务器的机器的性能经常用每秒查询率来衡量. 对应fetches/sec,即每秒的响应请求数,也即是最大吞吐能力.IOPSIOPS 即I/O per second,即每秒进行读写(I/O)操作的次数,多用于数据库等场合,衡量随机访问的性能.存储端的IOPS性能和主机端的IO是不同的,IOPS是指存储每秒可接受多少次主机发出的访问,主机的一次IO需要多次访问存储才可以完成.

系统架构中的同步概念:一张图看到这两个模式集成,处理访问同步

1)Active Object(活动对象)模式 为了减少服务器并发线程应用.它通过将服务请求和服务执行解耦合来提高并发性,它将对象化的服务请求放到自己的控制线程中,并简化了对它们的访问. 2)Monitor Object(监控对象)模式 解决并发业务互相协调的问题.它通过同步并发方法的执行来保证同一时刻一个对象中只有一个方法在运行.它允许一个对象的多个方法以协作的方式确定它们的执行顺序表. 3)模式的集成 Active Object 和Monitor Object 模式主要处理访问同步,它们可以

我的全栈之路-Java架构师技术栈

我的全栈之路-Java架构师技术栈 我的全栈之路 JavaSE篇 Java概述与开发环境搭建 Java数据存储 Java数据计算 Java程序流程控制 Java数组 Java面向对象程序设计(上) Java面向对象程序设计(中) Java面向对象程序设计(下) Java常用API 集合 泛型 异常处理 注解 IO/BIO/NIO AIO网络框架tio设计与实现 多线程 网络编程 反射和动态代理 日志 XML 正则表达式 Java语言新特性实践 数据库编程(JDBC+MySQL) 数据结构 算法

Android - Gradle架构中使用的“.so”库

Gradle架构中使用的".so"库 本文地址:http://blog.csdn.net/caroline_wendy Android使用Gradle架构的Android应用,需要对.so库做特殊的处理,因为会找不到,就会导致编译正确,使用错误: 常见的使用情况是根据不同的cpu,有不同的库,包括:armeabi,mips,x86等. 报错: java.lang.UnsatisfiedLinkError: Couldn't load weibosdkcore from loader d

Android4.2.2下Stagefright多媒体架构中的A31的OMX插件和Codec组件

本文均属自己阅读源码的点滴总结,转账请注明出处谢谢. 欢迎和大家交流.qq:1037701636 email: [email protected] 在前面的博文中提到,AwesomePlayer::onPrepareAsyncEvent()开始进行Codec解码器组件的获取以及创建,这里和大家分享. 1.以解码器实例作为切入点 status_t AwesomePlayer::initVideoDecoder(uint32_t flags) { ATRACE_CALL(); ...... ALOG

面向服务开发中三层架构中事务单元的生命期管理

    经典的三层分层结构,控制层(Control),服务层(Service),持久层(Repository)应用广泛,在面向服务(SOA)的架构中,配合DI.IOC实现开放灵活的技术架构.     SOA中,Respository面向数据访问,提供访问数据库.文件.或其他业务接口提供持久能力.Service面向业务,提供访问业务功能的接口,使用领域模型描述业务需求,方便产品人员.需求人员和客户沟通理解业务流程.最后,Control面向业务流程整合,提供基于事务的需求实现.     事务,用需求

linux驱动程序之电源管理之新版linux系统设备架构中关于电源管理方式的变更

新版linux系统设备架构中关于电源管理方式的变更 based on linux-2.6.32 一.设备模型各数据结构中电源管理的部分 linux的设备模型通过诸多结构体来联合描述,如struct device,struct device_type,struct class, struct device_driver,struct bus_type等. @kernel/include/linux/devices.h中有这几中结构体的定义,这里只列出和PM有关的项,其余查看源码: struct d

[转]大型 JavaScript 应用架构中的模式

目录 1.我是谁,以及我为什么写这个主题 2.可以用140个字概述这篇文章吗? 3.究竟什么是“大型”JavaScript应用程序? 4.让我们回顾一下当前的架构 5.想得长远一些 6.头脑风暴 7.架构提议 7.1 模块化理论 7.2 CommonJS模块 7.3 外观模式 7.4 中介者模式 7.5 应用外观 7.6 核心的抽象 7.7 整合 7.8 超越发布/订阅:自动注册事件 7.9 常见问题 13 August 2013 原文:Patterns For Large-Scale Java

关于Intel处理器架构中AVX2里Gather特性的说明

在Intel Haswell架构里引入了Gather特性.它使得CPU可以使用向量索引存储器编址从存储器取非连续的数据元素.这些gather指令引入了一种新的存储器寻址形式,该形式由一个基地址寄存器(仍然是通用目的寄存器)和通过一个向量寄存器(XMM或YMM)所指定的多个索引构成.数据元素大小支持32位与64位,并且数据类型支持浮点型和整型. 我们先回顾一下普通的x86寻址方式:[<base register> + <index register> * <scale>