状态无关性

Rest 架构中不维持client,resource and request 的状态,我们通常称 Rest 服务是状态无关的。基于此的优势是为设计Rest架构提供了简便;每一个请求可以被完全单独的处理;与HTTP协议的状态无关保持一致。不足之处在于但是如果需要获取或者维持状态,需要消耗额外的资源。

缓存

缓存的设计是为了减少server端的负担,client 不需要每次都向 server 发送请求,client可以使用缓存技术来保存 server response。

HTTP Code:

S.N. HTTP Code & Description
1 200
OK, shows success.
2 201
CREATED, when a resource is successful created using POST or PUT request. Return link to newly created resource using location header.
3 204
NO CONTENT, when response body is empty for example, a DELETE request.
4 304
NOT MODIFIED, used to reduce network bandwidth usage in case of conditional GET requests. Response body should be empty. Headers should have date, location etc.
5 400
BAD REQUEST, states that invalid input is provided e.g. validation error, missing data.
6 401
UNAUTHORIZED, states that user is using invalid or wrong authentication token.
7 403
FORBIDDEN, states that user is not having access to method being used for example, delete access without admin rights.
8 404
NOT FOUND, states that method is not available.
9 409
CONFLICT, states conflict situation while executing the method for example, adding duplicate entry.
10 500
INTERNAL SERVER ERROR, states that server has thrown some exception while executing the method.

Rest之路 - Rest架构中的重要概念(二)的更多相关文章

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

    资源 在Rest的架构之内,讲一切内容都是为资源.每一个资源都被定义为一个URI. 格式: <protocol>://<service-name>/<ResourceTy ...

  2. 分享一个CQRS/ES架构中基于写文件的EventStore的设计思路

    最近打算用C#实现一个基于文件的EventStore. 什么是EventStore 关于什么是EventStore,如果还不清楚的朋友可以去了解下CQRS/Event Sourcing这种架构,我博客 ...

  3. [译]Google官方关于Android架构中MVP模式的示例

    概述 该示例(TODO-MVP)是后续各种示例演变的基础,它主要演示了在不带架构性框架的情况下实现M-V-P模式.其采用手动依赖注入的方式来提供本地数据源和远程数据源仓库.异步任务通过回调处理. 注意 ...

  4. 大型 JavaScript 应用架构中的模式

    原文:Patterns For Large-Scale JavaScript Application Architecture by @Addy Osmani 今天我们要讨论大型 JavaScript ...

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

    目录 1.我是谁,以及我为什么写这个主题 2.可以用140个字概述这篇文章吗? 3.究竟什么是“大型”JavaScript应用程序? 4.让我们回顾一下当前的架构 5.想得长远一些 6.头脑风暴 7. ...

  6. 三层架构中bll层把datatable转换为实体model的理解

    看了很多人的项目,很多都是用到三层架构,其中BLL层中有一种将DataTable转换为实体的方法.一直没有明白为啥要这样做,今天特意去搜索了一下,如果没有答案我是准备提问,寻求解答了.还好找到一个相关 ...

  7. 谈谈三层架构中Model的作用

    Model又叫实体类,这个东西,大家可能觉得不好分层.包括我以前在内,是这样理解的:UI<-->Model<-->BLL<-->Model<-->DAL ...

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

    新版linux系统设备架构中关于电源管理方式的变更 based on linux-2.6.32 一.设备模型各数据结构中电源管理的部分 linux的设备模型通过诸多结构体来联合描述,如struct d ...

  9. 微服务架构中API网关的角色

    [上海尚学堂的话]:本文主要讲述了Mashape的首席技术执行官Palladino对API网关的详细介绍,以及API网关在微服务中所起的作用,同时介绍了Mashape的一款开源API网关Kong. A ...

随机推荐

  1. linux上安装mysql以后root不能登录的解决办法

    今天心血来潮在linux上装了mysql,装完以后用命令mysql -uroot -p登录时提示 解决办法: 使用ps aux|grep mysql 查出pid 使用kill pid结束mysql进程 ...

  2. 关闭SSL服务[iRedMail]

    相信有很多朋友接触并使用地iRedMail这个软件了, 其强大的邮件收发功能, 垃圾及病毒检索能力自不用说了. 其自身携带的dovecot组件提供的SSL也足以使人们对这个软件侧目, 但是正是由于这个 ...

  3. Prism5.0新内容 What's New in Prism Library 5.0 for WPF(英汉对照版)

    Prism 5.0 includes guidance in several new areas, resulting in new code in the Prism Library for WPF ...

  4. Android中UI线程与后台线程交互设计的6种方法

    在android的设计思想中,为了确保用户顺滑的操作体验.一些耗时的任务不能够在UI线程中运行,像访问网络就属于这类任务.因此我们必须要重新开启 一个后台线程运行这些任务.然而,往往这些任务最终又会直 ...

  5. *Fragment与Activity生命周期的协调

    本文出处:http://blog.csdn.net/think_soft/article/details/7272869 拥有Fragment的Activity的生命周期直接影响了其中的Fragmen ...

  6. VS 2010 转到COFF期间失败。

    可能的原因是framework 版本不匹配,我卸载4.5,装4.0后就解决了

  7. 人生苦短之我用Python篇(基础)

    Python简介 Python,是一种面向对象的解释型计算机程序设计语言,由荷兰人Guido van Rossum于1989年发明,第一个公开发行版发行于1991年. Python是纯粹的自由软件, ...

  8. laravel 框架给数组分页

    //Get current page form url e.g. &page=6        $currentPage = LengthAwarePaginator::resolveCurr ...

  9. linux基础【文件夹含义】

    linux文件目录是一个树状的目录 bin -->可执行文件 boot-->操作系统引导文件,系统内核,启动信息 dev -->device,设备信息,计算机硬件设备信息 etc - ...

  10. SGU 502 Digits Permutation

    这个题目 正解应该是 dp 吧 对18个数字进行2进制枚举放不放,,,可以这么理解 以当前状态 stu,他对应的余数是 h 进入下一个状态: 进行记忆画搜索就行了 1 #include<iost ...