2020-2-18 restful的学习
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的学习的更多相关文章
- 2020.2.19 restful的学习
restful Api 设计要素 3-8 如何设计Restful Api 资源路径(url),HTTP动词,过滤信息(做分页),状态码,错误处理,返回结果 3-9 初始化运行参数 3-10 ...
- RESTful API 学习
/********************************************************************************* * RESTful API 学习 ...
- 2020年Yann Lecun深度学习笔记(下)
2020年Yann Lecun深度学习笔记(下)
- 2020年Yann Lecun深度学习笔记(上)
2020年Yann Lecun深度学习笔记(上)
- 2020 重新出发,JAVA 学习计划
------ @[toc]# 前言 我呢已经工作七年了,一直没有换工作,因为我这个人没什么太大的野心,安安稳稳的生活就挺好,目前的公司虽然福利一般,但是工作稳定,环境也都很熟悉了. 但是今年,到目前为 ...
- 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. ...
- 4月18日 python学习总结 异常处理、网络编程
一. 异常 1.什么是异常 异常是错误发生的信号,程序一旦出错,如果程序中还没有相应的处理机制 那么该错误就会产生一个异常抛出来,程序的运行也随之终止 2.一个异常分为三部分: 1.异常的追踪信息 2 ...
- Hadoop学习笔记—18.Sqoop框架学习
一.Sqoop基础:连接关系型数据库与Hadoop的桥梁 1.1 Sqoop的基本概念 Hadoop正成为企业用于大数据分析的最热门选择,但想将你的数据移植过去并不容易.Apache Sqoop正在加 ...
- RESTful API学习与实践
参考文献: 1.Learn About ASP.NET Web API 2.深入浅出REST 3.Infoq上“深入探索REST”系列文章 4.RESTful API设计的一点经验 5.Angular ...
- 4月18日 MySQL学习
正式开始了数据库的学习 昨天下好的MySQL 今天正式开始学习的,介绍了多种数据库软件,当然 学习的这个是开源的 免费的. DBMS(数据库管理系统)这就是我们学习的数据库的软件 数据库分为关系型数据 ...
随机推荐
- dfs关于按钮问题(flip游戏POJ1753)以及和bfs的区别+板子
DFS深度搜索:之前一直和bfs的用法搞不太清楚:写了题才能慢慢参透吧,看了别的博客的代码,感觉能更好理解dfs在图中的应用: 这个题目的意思是一个人去救另一个人,找出最短的寻找路径: #includ ...
- java使用bitmap求两个数组的交集
一般来说int代表一个数字,但是如果利用每一个位 ,则可以表示32个数字 ,在数据量极大的情况下可以显著的减轻内存的负担.我们就以int为例构造一个bitmap,并使用其来解决一个简单的问题:求两个数 ...
- WebRTC的音频编码(转)
一.一个典型的IP通信模型 二.Server2Server技术分类 Server2Server这块也是一个专门的领域,这里只简单分个类. 1.同一国家相同运营商之间: 同一运营商之间也有丢包,在铁通, ...
- [SUCTF 2019]Pythonginx
贴出源码 @app.route('/getUrl', methods=['GET', 'POST']) def getUrl(): url = request.args.get("url&q ...
- Python:函数基础
概念 一段代码,集中到一起,起一个名字,下一次可以使用这个名字调用这个代码块,就是函数的功能 作用: 方便代码的重用 分解任务,简化程序逻辑 使代码更加模块化 函数的分类 内建函数 第三方函数 自定义 ...
- 吴裕雄--天生自然Numpy库学习笔记:NumPy 数组属性
NumPy 数组的维数称为秩(rank),秩就是轴的数量,即数组的维度,一维数组的秩为 1,二维数组的秩为 2,以此类推. 在 NumPy中,每一个线性的数组称为是一个轴(axis),也就是维度(di ...
- Cisco Spectrum Expert(Wave2 AP)
在一些版本中,我们可能会发现,AP16,26或AP17,27,37等支持Spectrum Expert Connect (即SE-Connect),该模式可以让AP将频谱分析所述数据发送到对应的分析仪 ...
- 5G时代开启,这些新兴职业决定你的后半生
近段时间,高考志愿填报成为牵动千万家庭的头等大事.事实上,除了学校间的差距外,专业的优劣也在很大程度上决定着人们未来职场生涯的潜力.血淋淋的事实告诉我们,只有选对专业,才能让自己的人生实现升华,并避免 ...
- 用apt-get解决dpkg过程中出现的依赖问题
dpkg命令不解决依赖问题,这点对新手很不友好 当使用dpkg -i *.deb 安装出现依赖问题的时候,可以尝试如下解决方法: apt-get -f -y install # 复制粘贴回车,inst ...
- P4710 平抛运动
题目:https://www.luogu.org/problemnew/show/P4710 $$ v_x = v_{x_0} = v \ sin \ \theta, \ v_y = v_{y_0} ...