美文网首页
Restful Api

Restful Api

作者: 倾斜的阳光 | 来源:发表于2017-12-20 00:23 被阅读0次

    RESTful 是什么?

    RESTful本质是一种软件架构风格, 面向资源来设计API

    解决的问题

    • 降低了开发的复杂度
    • 提高系统的可伸缩性能

    设计概念和准则

    • 网络上的所有事物都可以抽象为资源。
    • 每一个资源都有唯一的资源标志, 对资源的操作不会改变这些标识。
    • 所有的操作都是无状态的。

    资源

    什么是资源?

    所谓的 "资源",就是网络上的一个实体,或者说是网络上的一个具体信息。

    HTTP协议-URL

    HTTP协议是一个属于应用层的协议, 特点是简洁,快速。

    schema://host[:port]/path[?query-string][#anchor]
    
    • schema 指定底层使用的协议(例如: http, https, ftp)
    • host 服务器的IP地址 或 域名
    • port 服务器端口,默认80
    • path 访问资源的路径
    • query-string 发送给HTTP服务器的数据
    • anchor 锚

    HTTP协议-请求

    组成格式:请求行, 消息报头, 请求正文

    请求行

    格式: Method Request-URI HTTP-Version CRLF

    举例

    GET / HTTP/1.1 CRLF
    

    请求方法

    • GET 请求获取Request-URI所标识的资源
    • POST 在Request-URI 所标识的资源后附加的数据
    • HEAD 请求获取由Request-URI所标识的资源的响应消息报头
    • PUT 请求服务器存储一个资源, 并用Request-URI作为其标识
    • DELETE 请求服务器删除Request-URI所标识的资源
    • OPTIONS 请求查询服务器的性能, 或者查询与资源相关的选项和需求

    HTTP协议-响应

    组成格式: 状态行, 消息报头, 响应正文

    状态行

    HTTP-Version Status-Code Reason-phrase CRLF
    HTTP/1.1 200 OK
    

    常用状态码

    • 200 OK 客户端请求成功
    • 400 Bad Request 客户端请求有语法错误,不能被服务器所理解
    • 401 Unauthorized 服务器收到请求,但是拒绝提供服务
    • 404 Not Found 请求资源不存在
    • 500 Internal Server Error 服务器发生不可预期的错误
    • 503 Server Unavailable 服务器当前不能处理客户端的请求

    RESTful架构与 其他架构的区别

    SOAP WebService

    WebService 是一种跨编程语言和操作系统平台的远程调用技术。
    WebService 通过HTTP协议发送请求和接受结果时采用XML格式封装,并增加了一些特定的HTTP消息头,这些特定的HTTP消息头和XML内容格式就是SOAP协议。

    效率和易用性

    SOAP由于各种需求不断扩充其本身协议的内容,导致在SOAP处理方面的性能有所下降。同时在易用性方面以及学习成本上也有所增加。
    RESTful由于其面向资源接口设计以及操作抽象简化了开发者的不良设计,同时也最大限度的利用了HTTP最初的应用协议设计理念。

    安全性(还需探索)

    RESTful 对于资源型服务接口来说很合适,同时特别适合对于效率要求很高,但是对于安全要求不高的场景。(安全性应该可以提升)
    SOAP的成熟性可以给需要提供多开发语言的,对于安全性要求较高的接口设计带来便利。所以单纯从设计模式来看谁会占据主导地位没有什么意义,关键还是要看应用场景。

    相关文章

      网友评论

          本文标题:Restful Api

          本文链接:https://www.haomeiwen.com/subject/fdrwwxtx.html