• 主页
所有文章 关于本站

  • 主页

对RESTful的一些理解

2017-09-13

RESTful

一种架构方式、编码风格。


感觉RESTful模式的关注点在于“资源”,一切皆资源,客户端对服务端发出的所有请求皆是针对某个资源的请求。RESTful对资源的动作不会过分关注,因为针对所有资源的状态和动作都是统一的。

比如:

RESTful 风格

以下请求当中是没有包含动作和状态的。

1
2
.../.../RESTful/person	#这是请求资源 “人”
.../.../RESTful/books #这是请求资源 “书”

非RESTful 风格

以下请求当中是包含有动作或状态的。

1
2
.../.../req/addPerson	#包含了动作 “增加” 一个人
.../.../req/paidBooks #包含了状态 “付费” 书籍

RESTful 统一的动作

动作 一组资源的URI,比如http://example.com/resources/ 单个资源的URI,比如http://example.com/resources/142
GET 列出URI,以及该资源组中每个资源的详细信息(后者可选)。 获取指定的资源的详细信息,格式可以自选一个合适的网络媒体类型(比如:XML、JSON等)
PUT 使用给定的一组资源替换当前整组资源。 替换/创建指定的资源。并将其追加到相应的资源组中。
POST 在本组资源中创建/追加一个新的资源。该操作往往返回新资源的URL。 把指定的资源当做一个资源组,并在其下创建/追加一个新的元素,使其隶属于当前资源。
DELETE 删除整组资源。 删除指定的元素。

另还有:

HEAD

HEAD方法与GET方法一样,都是向服务器发出指定资源的请求。但是,服务器在响应HEAD请求时不会回传资源的内容部分,即:响应主体。这样,我们可以不传输全部内容的情况下,就可以获取服务器的响应头信息。HEAD方法常被用于客户端查看服务器的性能。

CONNECT

CONNECT方法是HTTP/1.1协议预留的,能够将连接改为管道方式的代理服务器。通常用于SSL加密服务器的链接与非加密的HTTP代理服务器的通信。

OPTIONS

OPTIONS请求与HEAD类似,一般也是用于客户端查看服务器的性能。 这个方法会请求服务器返回该资源所支持的所有HTTP请求方法,该方法会用’*’来代替资源名称,向服务器发送OPTIONS请求,可以测试服务器功能是否正常。JavaScript的XMLHttpRequest对象进行CORS跨域资源共享时,就是使用OPTIONS方法发送嗅探请求,以判断是否有对指定资源的访问权限。

TRACE

TRACE请求服务器回显其收到的请求信息,该方法主要用于HTTP请求的测试或诊断。

PATCH

PATCH方法出现的较晚,它在2010年的RFC 5789标准中被定义。PATCH请求与PUT请求类似,同样用于资源的更新。二者有以下两点不同:

  • 但PATCH一般用于资源的部分更新,而PUT一般用于资源的整体更新。
  • 当资源不存在时,PATCH会创建一个新的资源,而PUT只会对已在资源进行更新。

参考

https://zh.wikipedia.org/wiki/REST#cite_note-3
http://www.ruanyifeng.com/blog/2011/09/restful
https://itbilu.com/other/relate/EkwKysXIl.html

  • RESTful

扫一扫,分享到微信

微信分享二维码
RestController返回json和xml数据
java POJO 重写toString方法工具
  1. 1. RESTful
    1. 1.1. RESTful 风格
    2. 1.2. 非RESTful 风格
    3. 1.3. RESTful 统一的动作
      1. 1.3.1. HEAD
      2. 1.3.2. CONNECT
      3. 1.3.3. OPTIONS
      4. 1.3.4. TRACE
      5. 1.3.5. PATCH
    4. 1.4. 参考
© 2022 Code0
Hexo Theme Yilia by Litten
  • 所有文章
  • 关于本站

tag:

  • hexo
  • GitHub
  • 工控机
  • maven
  • Eclipse
  • Git
  • SSH
  • toString
  • java
  • RESTful
  • springMVC
  • jstl
  • bytecode
  • jvm
  • javap
  • IDEA
  • CLI
  • Node.js
  • DevTools
  • Shadowsocks
  • Hibernate
  • PO
  • VO
  • DAO
  • BO
  • POJO
  • DTO
  • English
  • getter-setter
  • lombok
  • gradle
  • nodejs
  • 环境变量
  • MongoDB
  • Database
  • Thread
  • Swagger
  • 摇摇车
  • Linux
  • nvm
  • smart-npm
  • 有道
  • linux
  • shadowsocks
  • 随机数
  • random
  • xfce
  • kafka
  • mysql
  • Netty
  • tio
  • Voovan
  • redis
  • ssh
  • 路由器
  • Docker
  • svn
  • sha校验
  • md5校验
  • Java
  • 位操作
  • 字节序
  • logback
  • tls
  • ca
  • 树莓派
  • dockerfile
  • centos
  • firewall
  • curl
  • wget
  • discuz
  • dns
  • docker
  • emqx
  • harbor
  • helm
  • innoSetup
  • java调用C#
  • jenkins
  • k8s
  • chrony
  • ntpdate
  • lvm
  • nfs
  • nginx
  • vsftp
  • temp
  • heap、stack
  • 堆、栈
  • 常量池
  • String
  • jQuery
  • cache
  • 缓存
  • 网络
  • application.properties
  • SpringBoot
  • BAT
  • 批处理
  • CMD

    缺失模块。
    1、请确保node版本大于6.2
    2、在博客根目录(注意不是yilia根目录)执行以下命令:
    npm i hexo-generator-json-content --save

    3、在根目录_config.yml里添加配置:

      jsonContent:
        meta: false
        pages: false
        posts:
          title: true
          date: true
          path: true
          text: false
          raw: false
          content: false
          slug: false
          updated: false
          comments: false
          link: false
          permalink: false
          excerpt: false
          categories: false
          tags: true
    

好记性不如烂笔头。
古人诚不我欺也!!

随着时间的流逝,发现有很多知识点都遗忘了。本博客的诞生,是为了方便日后自己查找一些遗忘的知识点。内容包含:自己写的、网上的摘抄和转载。