zoukankan      html  css  js  c++  java
  • REST系统的特征

    作者:小辉
    链接:https://www.zhihu.com/question/28557115/answer/41268927
    来源:知乎
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

    什么是 REST?

    下面六条准则定义了一个 REST 系统的特征:

    • 客户-服务器(Client-Server),提供服务的服务器和使用服务的客户需要被隔离对待。
    • 无状态(Stateless),来自客户的每一个请求必须包含服务器处理该请求所需的所有信息。换句话说,服务器端不能存储来自某个客户的某个请求中的信息,并在该客户的其他请求中使用。
    • 可缓存(Cachable),服务器必须让客户知道请求是否可以被缓存。(Ross:更详细解释请参考 理解本真的REST架构风格 以及 StackOverflow 的这个问题 中对缓存的解释。)
    • 分层系统(Layered System),服务器和客户之间的通信必须被这样标准化:允许服务器和客户之间的中间层(Ross:代理,网关等)可以代替服务器对客户的请求进行回应,而且这些对客户来说不需要特别支持。
    • 统一接口(Uniform Interface),客户和服务器之间通信的方法必须是统一化的。(Ross:GET,POST,PUT.DELETE, etc)
    • 支持按需代码(Code-On-Demand,可选),服务器可以提供一些代码或者脚本(Ross:Javascrpt,flash,etc)并在客户的运行环境中执行。这条准则是这些准则中唯一不必必须满足的一条。(Ross:比如客户可以在客户端下载脚本生成密码访问服务器。)
    什么是一个 RESTful 的 Web Service?

    REST 架构最初被设计出来用于 World Wide Web 使用的 HTTP 协议

    RESTful Web Service 的核心概念在于对 Resources 的抽象。Resources 被 URIs (Uniform Resource Identifier) 表征。客户使用 HTTP 协议定义的方法发送请求给这些 URIs,然后相应的资源的状态就可能会发生变化。


    HTTP 请求的方法是被专门设计出来以标准的方式影响给定资源的:

    Get:从某种资源获取信息 (获取 order list)
    Get:从某个资源获取信息 (获取 order #123)
    POST:创建一个新资源 (根据请求中的数据创建一个新 order)PUT:更新一个资源 (根据请求中的数据更新 #order 为 123 的 order)
    DELETE:删除一个资源 (删除 #order 为 123 的 order)
  • 相关阅读:
    文件操作
    join,列表和字典用for循环的删除,集合,深浅拷贝
    java多线程基础
    nginx应用及性能调优
    nginx 基本功能
    SpringBoot2.x 启动过程详解
    shell脚本的基本使用
    使用 maven 的 `wagon-maven-plugin`插件 快速部署 到不同的 环境
    Netty笔记(7)
    Netty笔记(6)
  • 原文地址:https://www.cnblogs.com/sstone/p/6781421.html
Copyright © 2011-2022 走看看