转自:http://blog.csdn.net/cloudcraft/article/details/10087033

资源是REST中最关键的抽象概念,它们是能够被远程访问的应用程序对象。一个资源就是一个标识单位,任何可以被访问或被远程操纵的东西都可能是一个资源。资源可以是静态的,也就是该资源的状态永远不会改变。相反,某些资源的状态可能随着时间推移呈现很大的可变性。这两种类型的资源都是有效的

为了简化整体系统架构,REST架构风格包含了统一接口的概念。统一接口包含一组受限的良定义的操作,由它们进行资源的访问和操作。不论什么资源,都使用相同的接口。客户端与Hotel,Room或CreditScore等资源交互时使用的接口是一样的。统一接口独立于资源的URI,并且也不需要类似IDL的文件去描述可用的操作。

RESTful HTTP的接口非常流行且广为使用。它包含标准的HTTP方法如GET,PUT和POST(浏览器使用它发出请求并提取页面)。不幸的是,很多开发者认为实现RESTful应用就是用一种直接使用HTTP的方式,这种理解是错误的。举个例子,HTTP方法的实现必须要遵循HTTP规范的,而通过GET方法创建或修改对象是不遵守HTTP规范的。

GET

[ruby] view
plain
copy

  1. - 获取表示
  2. - 变更时获取表示(缓存)
  3. 200(OK) - 表示已在响应中发出
  4. 204(无内容) - 资源有空表示
  5. 301(Moved Permanently) - 资源的URI已被更新
  6. 303(See Other) - 其他(如,负载均衡)
  7. 304(not modified)- 资源未更改(缓存)
  8. 400 (bad request)- 指代坏请求(如,参数错误)
  9. 404 (not found)- 资源不存在
  10. 406 (not acceptable)- 服务端不支持所需表示
  11. 500 (internal server error)- 通用错误响应
  12. 503 (Service Unavailable)- 服务端当前无法处理请求

DELETE

[ruby] view
plain
copy

  1. - 删除资源
  2. 200 (OK)- 资源已被删除
  3. 301 (Moved Permanently)- 资源的URI已更改
  4. 303 (See Other)- 其他,如负载均衡
  5. 400 (bad request)- 指代坏请求t
  6. 404 (not found)- 资源不存在
  7. 409 (conflict)- 通用冲突
  8. 500 (internal server error)- 通用错误响应
  9. 503 (Service Unavailable)- 服务端当前无法处理请求

PUT

[ruby] view
plain
copy

  1. - 用客户端管理的实例号创建一个资源
  2. - 通过替换的方式更新资源
  3. - 如果未被修改,则更新资源(乐观锁)
  4. 200 (OK)- 如果已存在资源被更改
  5. 201 (created)- 如果新资源被创建
  6. 301(Moved Permanently)- 资源的URI已更改
  7. 303 (See Other)- 其他(如,负载均衡)
  8. 400 (bad request)- 指代坏请求
  9. 404 (not found)- 资源不存在
  10. 406 (not acceptable)- 服务端不支持所需表示/p>
  11. 409 (conflict)- 通用冲突
  12. 412 (Precondition Failed)- 前置条件失败(如执行条件更新时的冲突)
  13. 415 (unsupported media type)- 接受到的表示不受支持
  14. 500 (internal server error)- 通用错误响应
  15. 503 (Service Unavailable)- 服务当前无法处理请求

POST

[ruby] view
plain
copy

  1. - 使用服务端管理的(自动产生)的实例号创建资源
  2. - 创建子资源
  3. - 部分更新资源
  4. - 如果没有被修改,则不过更新资源(乐观锁)
  5. 200(OK)- 如果现有资源已被更改
  6. 201(created)- 如果新资源被创建
  7. 202(accepted)- 已接受处理请求但尚未完成(异步处理)
  8. 301(Moved Permanently)- 资源的URI被更新
  9. 303(See Other)- 其他(如,负载均衡)
  10. 400(bad request)- 指代坏请求
  11. 404 (not found)- 资源不存在
  12. 406 (not acceptable)- 服务端不支持所需表示
  13. 409 (conflict)- 通用冲突
  14. 412 (Precondition Failed)- 前置条件失败(如执行条件更新时的冲突)
  15. 415 (unsupported media type)- 接受到的表示不受支持
  16. 500 (internal server error)- 通用错误响应
  17. 503 (Service Unavailable)- 服务当前无法处理请求

REST四种请求(get,delete,put,post) 收集整理 之一的更多相关文章

  1. [技术博客]OKhttp3使用get,post,delete,patch四种请求

    OKhttp3使用get,post,delete,patch四种请求 1.okhttp简介 okhttp封装了大量http操作,大大简化了安卓网络请求操作,是现在最火的安卓端轻量级网络框架.如今okh ...

  2. HttpwebClient的四种请求方式

    最近悟出来一个道理,在这儿分享给大家:学历代表你的过去,能力代表你的现在,学习代表你的将来. 十年河东十年河西,莫欺少年穷.      本文旨在发布代码,供自己参考,也供大家参考,谢谢. 正题: Ht ...

  3. SpringMVC的REST风格的四种请求方式

    一. 在HTTP 协议里面,四个表示操作方式的动词:GET.POST.PUT.DELETE. ·它们分别对应四种基本操作: 1.GET  ====== 获 取资源 2.POST ======新建资源 ...

  4. httpClient Post例子,Http 四种请求访问代码 HttpGet HttpPost HttpPut HttpDelete

    httpclient post方法 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 //----1. HttpPost request = new HttpPost(ur ...

  5. 【spring springmvc】这里有你想要的SpringMVC的REST风格的四种请求方式

    概述 之前的文章springmvc使用注解声明控制器与请求映射有简单提到过控制器与请求映射,这一次就详细讲解一下SpringMVC的REST风格的四种请求方式及其使用方法. 你能get的知识点 1.什 ...

  6. Vue 封装axios(四种请求)及相关介绍(十三)

    Vue 封装axios(四种请求)及相关介绍 首先axios是基于promise的http库 promise是什么? 1.主要用于异步计算 2.可以将异步操作队列化,按照期望的顺序执行,返回符合预期的 ...

  7. 接口测试中模拟post四种请求数据

    https://www.jianshu.com/p/3b6d7aa2043a 一.背景介绍 在日常的接口测试工作中,模拟接口请求通常有两种方法,fiddler模拟和HttpClient模拟. Fidd ...

  8. HTTP GET POST PUT DELETE 四种请求

    1.GET请求会向数据库发索取数据的请求,从而来获取信息,该请求就像数据库的select操作一样,只是用来查询一下数据,不会修改.增加数据,不会影响资源的内容,即该请求不会产生副作用.无论进行多少次操 ...

  9. Springboot的 get查看,post创建,put更新,delete删除 -四种请求实例(form + controller)

    总结 --get查看数据, post创建新数据行, put更新数据, delete删除数据行-- add和select功能都共用这一个页面, 需要进行区分显示 ,使用thymeleaf的三元选择,判断 ...

随机推荐

  1. Miller_Rabin (米勒-拉宾) 素性测试

    之前一直对于这个神奇的素性判定方法感到痴迷而又没有时间去了解.借着学习<信息安全数学基础>将素性这一判定方法学习一遍. 首先证明一下费马小定理. 若p为素数,且gcd(a, p)=1, 则 ...

  2. 51nod1204 Parity

    如果sm[j]和sm[i]奇偶性相同,那么(i+1,j)个数为偶数如果奇偶性相同看成是朋友,不同的看成是敌人,那么就跟bzoj1370的做法差不多了. 如果奇偶性相同,就将x和y合并,x+n,y+n合 ...

  3. A*寻路初探 GameDev.net 转载

    A*寻路初探 GameDev.net 译者序:很久以前就知道了A*算法,但是从未认真读过相关的文章,也没有看过代码,只是脑子里有个模糊的概念.这次决定从头开始,研究一下这个被人推崇备至的简单方法,作为 ...

  4. NBUT 1121 Sakuya's Fly Knife 飞刀(暴力)

    题意:给出一个带有n*m个格子的矩阵,部分格子中有靶子target,现在要从一个没有靶子的格子中射出飞刀数把,飞刀是可穿透靶子的,同一直线上都可以一刀全射掉.现在问在哪个格子射出飞刀,可以在全部射中的 ...

  5. Android 系统开发学习杂记(转)

    http://blog.csdn.net/shagoo/article/details/6709430 > 开发环境1.安装 Eclipse 和 android-sdk 并解压安装2.Eclip ...

  6. activity_main.xml与fragment_main.xml

    见: http://blog.sina.com.cn/s/blog_3e28c8a50101fqvw.html http://blog.sina.com.cn/s/blog_3e28c8a50101f ...

  7. 所有 HTTP 状态代码及其定义

    所有 HTTP 状态代码及其定义. 代码  指示  2xx  成功  200  正常:请求已完成.  201  正常:紧接 POST 命令.  202  正常:已接受用于处理,但处理尚未完成.  20 ...

  8. 在Linux系统中如何装rpm,deb,tar.gz,tar.bz2,apt,bin 格式的文件

    首先安装 系统自带的 alien 包 :终端 -su-输入密码 -进入ROOT 用户 - sudo apt-get install alien 这样 alien 包 就装上去了 !(if alien  ...

  9. RandomAccessFile、FileChannel、MappedByteBuffer读写文件

    s package com.nio; import java.io.Closeable; import java.io.FileNotFoundException; import java.io.IO ...

  10. 使用命令行设置svn忽略列表

    Windows 上的 TortoiseSVN 设置 svn 的忽略列表是非常方便的,但是在Mac OS X上,好用的图形化 svn 客户端都有点儿贵,比如 Versions 和 CornerStone ...