1-1 restful简介及资源的介绍

restful   是什么?

本质:一种软件架构风格

   核心:面向资源

      解决的问题:

        1. 降低开发的复杂性

        2. 提高系统的可伸缩性

      设计概念和准则:

        1. 网络上的所有事物都可以被抽象为准则

        2. 每一个资源都有唯一的资源标识,对资源的操作不会改变这些标识

            (例子:当你把一个资源删除之后,标识依旧是有效的,只不过标识所代表的标识不存在)

        3. 所有的操作都是无状态的

            (你本次操作与上一次操作是无关的)

资源     什么是资源

所谓 “ 资源 ” ,就是网络上的一个实体,或者说是网络上的一个具体信息。(一首歌 一个视频等等)

2-1  restful中HTTP协议介绍

HTTP协议-url

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

      路径:schema://host[:port]/path [?query-string][#anchor]

        (主要有协议头  主机名  请求路线)

        schema         指定底层使用的协议(例:http,https,ftp)

        host       服务器的ip地址或者域名

        port        服务器端口,默认为80(https默认为443)

        path       访问资源的路径

        query-string   发送给http服务器的数据(对资源进行筛选)

        anchor      锚(比如写一个api文档,都会写在同一个链接下边,如果需要定位到特定的章节或者函数)

HTTP协议-请求

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

        请求行:

            格式: method (请求方法)Request-url (请求地址)http-version (请求的http协议版本号 1.0 1.1)crlf

            举例:  get/http/1.1

    请求方法:

        1. get    请求获取request-url 所标识的资源

        2. post  在Request-url所标识的资源后附加新的资源

        3. head    请求获取有Request-url所标识的资源的响应消息的抱头

        4. put    请求服务器存储一个资源,并用Request-url作为其标识

        5. delete  请求服务器删除的Request-url所标识的资源

        6. options    请求查询服务器的性能,或者查询与资源相关的选项和需求

HTTP协议-响应

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

      状态行:http-version  status-code reason-phrase crlf

          例子:http/1.1 200 OK

    常用状态码:

        200 OK 客户端请求成功

        400 Bad Request 客户端请求有语法错误,不能被服务器所理解

        401 unauthorized 服务器收到请求,但是拒绝提供服务

        404 请求资源不存在

        500 服务器发生不可预期的错误

        503 服务器当前不能处理客户端的请求

2-2  架构区别

    Restful架构与其他架构的区别  跟webservice对比

      效率与易用性:soap  各种需求不断补充其本身协议的内容,导致处理性能方面有些下降,难度上升,restful资源借口设计以及操作抽象

                  简化了开发者的不良设计,最大限度的利用了http最初的应用协议设计理念

      安全性:对安全性要求比较高的项目,使用WebServiceAPI,对安全性要求比较低的使用RESTfulAPI

3-1  Restful设计要素

     如何设计restful api

        1. 资源路径 2.http动词 3.过滤信息 4.状态码 5.错误处理 6.返回结果      

              http动词:get,post,put×(更新,客户端提供改变后的完整资源),patch(更新,客户端提供改变的属性),delete

              使用Restful api 返回的状态码就要和标准的http相同:  200 成功   201 新建或修改数据成功   204   删除数据成功   400   用户发送的请求有错误

401   表示用户没有认证,无法进行当前操作  403  用户访问是被禁止的  422 当创建一个对象时,发生一个验证错误   500 服务器发生错误  用户将无法判断发送的请求是否成功

     

3-2 DHC client

      谷歌安装的插间

        百度搜索:DHC client https://chromecj.com/web-development/2015-08/549/download.html

          把下载下的文件后缀名改成zip,后面开发者工具加载这个文件夹就可以了   

        谷歌的网上应用商店搜索 DHC Client

        postman代替    

3-3 本地开发环境的搭建

      开发环境的搭建:下载upupw.net 集成环境

        www.upupw.net 下载

2020-2-18 restful的学习的更多相关文章

  1. 2020.2.19 restful的学习

    restful Api 设计要素 3-8 如何设计Restful Api 资源路径(url),HTTP动词,过滤信息(做分页),状态码,错误处理,返回结果    3-9    初始化运行参数 3-10 ...

  2. RESTful API 学习

    /********************************************************************************* * RESTful API 学习 ...

  3. 2020年Yann Lecun深度学习笔记(下)

    2020年Yann Lecun深度学习笔记(下)

  4. 2020年Yann Lecun深度学习笔记(上)

    2020年Yann Lecun深度学习笔记(上)

  5. 2020 重新出发,JAVA 学习计划

    ------ @[toc]# 前言 我呢已经工作七年了,一直没有换工作,因为我这个人没什么太大的野心,安安稳稳的生活就挺好,目前的公司虽然福利一般,但是工作稳定,环境也都很熟悉了. 但是今年,到目前为 ...

  6. 2020年度钻石C++C学习笔记(2)--《博学谷》

    2020年度钻石C++C--<博学谷> 1.以下标示符中命名合法的是A A.__A__ B.ab.c C.@rp D.2Y_ 2.设 a 和 b 均为 double 型变量,且a=5.5. ...

  7. 4月18日 python学习总结 异常处理、网络编程

    一. 异常 1.什么是异常 异常是错误发生的信号,程序一旦出错,如果程序中还没有相应的处理机制 那么该错误就会产生一个异常抛出来,程序的运行也随之终止 2.一个异常分为三部分: 1.异常的追踪信息 2 ...

  8. Hadoop学习笔记—18.Sqoop框架学习

    一.Sqoop基础:连接关系型数据库与Hadoop的桥梁 1.1 Sqoop的基本概念 Hadoop正成为企业用于大数据分析的最热门选择,但想将你的数据移植过去并不容易.Apache Sqoop正在加 ...

  9. RESTful API学习与实践

    参考文献: 1.Learn About ASP.NET Web API 2.深入浅出REST 3.Infoq上“深入探索REST”系列文章 4.RESTful API设计的一点经验 5.Angular ...

  10. 4月18日 MySQL学习

    正式开始了数据库的学习 昨天下好的MySQL 今天正式开始学习的,介绍了多种数据库软件,当然 学习的这个是开源的 免费的. DBMS(数据库管理系统)这就是我们学习的数据库的软件 数据库分为关系型数据 ...

随机推荐

  1. 基于SILVACO ATLAS的a-IGZO薄膜晶体管二维器件仿真(03)

    今天逛ResearchGate的时候发现了一个不错的Atlas入门教程:Step by step with ATLAS Silvaco点击链接免费下载.. Atlas代码结构 当然可能有一点太基础了. ...

  2. 使用MQTT.fx客户端接入阿里云

    一.前期准备. 1.关于MQTT连接的属性:https://www.cnblogs.com/mhtc/p/11112153.html 2.关于阿里云配置工具的使用:https://www.cnblog ...

  3. tomcat 开机自启

    d /usr/lib/systemd/system touch tomcat.service chmod 777 tomcat.service vi tomcat.service [Unit]Desc ...

  4. 为什么局部内部类和匿名内部类只能访问 final 的局部变量?

    首先,我们看一个局部内部类的例子: class OutClass { private int age = 12; public void outPrint(final int x) { class I ...

  5. Python中的浅复制、深复制

    参考 https://docs.python.org/3/library/copy.html?highlight=copy%20copy#copy.copy https://en.wikipedia. ...

  6. [0CTF 2016] piapiapia

    一道非常有意思的反序列化漏洞的题目 花费了我不少时间理解和记忆 这里简单记录其中精髓 首先打开是一个登陆页面 dirsearch扫描到了www.zip源码备份 update.php <?php ...

  7. Centos 安装 mysql 5.7

    下载mysql yum包 wget http://repo.mysql.com/mysql57-community-release-el7-10.noarch.rpm 安转软件源 xxx.rpm是刚刚 ...

  8. 源代码管理工具(2)——SVN(2)——第一次用SVN遇到的问题

    今天因为项目的需要第一次使用了svn来托管项目,第一使用svn遇到了几个问题. 这个安装的过程很简单,不再赘述.在安装完成之后,相信肯定有一部分第一次用这个的人直接到开始处打开这个软件,这时候就会弹出 ...

  9. Nexus-vPC和STP BPDU

    1.为了交互vPC拓扑,STP机制被修改适应到vPC peer环境.2.对于vPC ports,只有主角色运行STP,换句话说,vPC下的STP由主角色设备控制.3.只有主角色设备在DP(指定端口)上 ...

  10. [todo0211]c语言指针,结构体的疑问

    #include <stdio.h> #include <mm_malloc.h> struct ListNode { int val; struct ListNode *ne ...