『政善治』Postman工具 — 3、补充:restful风格接口的项目说明
(一)RESTful架构风格特点
1、统一接口风格
http://服务器地址:端口号[/项目名称/版本/资源]
http://:为我们HTTP协议的访问头标准。服务器地址:为我们项目服务器IP地址。端口号:为我们服务器内项目访问的指定编号。[/项目名称/版本]:可选 。资源:互联网-图片、音乐、视频、文本、数据。
2、规范的HTTP请求方法
GET:从服务器取出资源(一项或多项)。POST:在服务器新建一个资源。(单条或多条)PUT:在服务器更新资源。DELETE:从服务器删除资源。
3、HTTP响应码
| 序号 | 状态码 | 动词 | 说明 |
|---|---|---|---|
| 1 | 200 | GET | 服务器成功返回用户请求的数据 |
| 2 | 201 | POST | 用户新增数据成功 |
| 3 | 201 | PUT | 用户修改数据成功 |
| 4 | 204 | DELETE | 用户删除数据 |
| 5 | 400 | POST/PUT | 用户发出的请求有错误,服务器没有进行新建或修改数据的操作 |
| 6 | 404 | GET | 服务器没有返回资源. |
4、什么是无状态
为什么说HTTP协议是无状态的协议呢?
因为它的每个请求都是完全独立的,每个请求包含了处理这个请求所需的完整的数据,发送请求不涉及到状态变更。
而且再次请求也无法判断他是否之前请求过,如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。
看看下面故事你会有所启发。
- 无状态(Stateless)
魔都的老王开了一个会所,一个开会的地方,有大会议室、小会议室、Cosplay情景会议室。
顾客听说这个会所有特色,于是纷纷前来消费,小明就是其中的一员。
小明上次会议室体验很棒,尽管有点贵,本周又前来消费。
结账时,小明以为老王认识自己,和老王套近乎弄个优惠价:"王老板,我上周刚来过,打个折扣呗"!
老王很茫然地瞅着小明:"上周你来过?我好像一点印象也没有了嘛,很抱歉,无法优惠"!
小明很不爽地付完钱走人... - 有状态(Stateful)
老王有一个助手叫小王,看到这一幕于是和老板有一番对话:
小王:老板,下次客人来消费,咱们给客人发一张小卡片,来一次打卡一次,凡是打过卡的,都有优惠。来的
次数越多,折扣力度越大,这样就能有更多的回头客,您看如何?
老王连说这是好主意,以后就这么干!
小明第一次来领了一张考勤卡,打了卡,夹在钱包里。
第二次来消费埋单时,小明从自己的钱包掏出考勤卡,老王一看原来是回头客,好说好说,88折优惠,小明和老王都笑的合不拢嘴... - Cookie
后来老王觉得考勤卡上,还应该多记录一些内容,才能更好地服务客户,考勤卡上慢慢增加了更多内容。
会员卡片样例如下:

小明再次来消费时,不仅可以优惠,还可以根据小明的消费习惯,做出最合理的安排。
随着服务的精细化,小卡片上描述客户的信息越来越多,卡片越做越大,由于小卡片受4K字节的限制,每次客户前来消费都要携带大大的卡片,这很夸张! - Session
小王寻思着,小卡片一直都是客户携带,为何不在公司的电脑上弄个数据库,记录客户的消费习惯,每个客户有一个数据库明细。
客户明细如下:

给小明的小卡片上只要有一个客户代号"08029snne3e0kekllojeis007"就可以了,查询电脑就可以知道是小明消费信息和消费习惯,消费完还可以从账户余额内扣除。
这个客户代号就是SessionlD,通常保存在客户端浏览器的Cookie里。
总结:
上文故事中的"Stateless"、"Stateful"、"Cookie"、"SessionID"以及"Session"与HTTP协议中这些关键词具有相类似的意思。
HTTP最初的设计是无状态的(stateless),但是无状态的HTTP无法满足互联网日益发展的需求,于是业界扩展了HTTP协议,增加了有状态(stateful)协议头,使之变成一个有状态协议。
这个有状态的协议头,就是依靠Cookie来实现的,Cookie是维系客户端与服务器之间状态同步的纽带。
无论什么类型的Cookie,都是由服务器来一手创建,最终解释权归服务器,只有服务器才理解这些Cookie所代表的真正涵义;客户只负责携带,不需要理解Cookie的真正意义!
(二)JSON数据格式说明
restful风格接口的数据返回格式一般为:JSON数据格式。
1、什么是JSON
JSON 指的是 JavaScript 对象表示法(Java Script Object Notation)。
JSON 是轻量级的文本数据交换格式。
JSON 具有自我描述性,更易理解。
2、JSON格式的特点
JSON 是纯文本,具有"自我描述性"和“层级结构性”。
读写的速度更快,消耗流量少。
3、JSON语法
- 格式1
JSON对象:{"键1":"值1","键2":"值2"} - 格式2
JSON数组:[值1,值2,值3.....] - 格式3
对象+数组:{"name":"葫芦娃","age":"8","技能":[" "," "," "]} - 格式4
数组+对象:[{"name":"葫芦娃","age":"8"},{"name":"葫芦娃","age":"8"}]
参考:https://www.zhihu.com/question/23202402,解释的很精彩。
『政善治』Postman工具 — 3、补充:restful风格接口的项目说明的更多相关文章
- 『政善治』Postman工具 — 2、Postman主界面详细介绍
目录 1.Postman菜单栏 (1)File 菜单 (2)Edit 菜单 (3)View 菜单 (4)Help 菜单 2.Postman工具栏 3.Postman工具栏中的系统设置 4.Postma ...
- 『政善治』Postman工具 — 1、Postman介绍与安装
目录 一.Postman介绍 二.Postman下载与安装 1.Postman下载 2.Postman安装 3.为什么要注册Postman账号 一.Postman介绍 Postman是一款非常流行的H ...
- 『政善治』Postman工具 — 10、Postman中对Cookie的操作
目录 1.往常的Cookie处理方式 2.Postman中的Cookie管理机制 3.自定义Cookie管理内容 在接口测试中,某些接口的调用,需要带入已有Cookie,比如有些接口需要登陆后才能访问 ...
- 『政善治』Postman工具 — 12、Postman中实现数据驱动
目录 1.什么是数据驱动? 2.测试集说明 3.创建请求与准备数据文件 (1)新增学院结果文档内容如下 (2)编写数据文件 (3)在Postman中创建请求 4.实现Postman中的数据驱动 步骤1 ...
- 『政善治』Postman工具 — 13、Postman接口测试综合练习
目录 (一)项目接口文档 1.鉴权接口 2.注册接口 3.登录接口 4.用户信息接口 5.注销接口 (二)网站上手动验证 (三)Postman测试实现 1.准备工作 (1)创建一个Collection ...
- 『政善治』Postman工具 — 14、NewMan工具的使用详解
目录 1.NewMan工具的介绍 2.NewMan的安装 (1)安装 (2)验证NewMan环境: (3)NewMan卸载命令 3.NewMan执行Postman测试集 (1)导出collection ...
- 『政善治』Postman工具 — 4、HTTP请求基础组成部分介绍
目录 1.Method 2.URL 3.Headers 4.body 一般来说,所有的HTTP Request都有最基础的4个部分组成:URL. Method. Headers和body. 1.Met ...
- 『政善治』Postman工具 — 7、Postman中保存请求(Collections集合)
目录 1.创建Collection 2.保存Request请求 3.查看保存的请求 4.Collection下还可以创建文件夹 5.补充:Postman中的变量 6.总结 1.创建Collection ...
- 『政善治』Postman工具 — 8、Postman中Pre-request Script的使用
目录 1.Pre-request Script介绍 2.常用SNIPPETS(片段)说明 (1)获取变量脚本: (2)设置变量脚本: (3)清空变量脚本: (4)Send a request代码片段 ...
- 『政善治』Postman工具 — 9、在Postman中使用断言
目录 1.Tests的介绍 2.常用SNIPPETS(片段)说明 (1)常用变量相关 (2)状态码相关 (3)响应结果断言: (4)Header : (5)响应速度: 3.示例 (1)响应码断言 (2 ...
随机推荐
- Java语言的魅力
Java语言的简介 Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承.指针等概念,因此Java语言具有功能强大和简单易用两个特征.Java语言作为静态面 ...
- 剑指 Offer 62. 圆圈中最后剩下的数字 + 约瑟夫环问题
剑指 Offer 62. 圆圈中最后剩下的数字 Offer_62 题目描述 方法一:使用链表模拟 这种方法是暴力方法,时间复杂度为O(nm),在本题中数据量过大会超时. 方法二:递归方法 packag ...
- CSS基础 和 font字体、背景属性连写 与 清除浮动方法
1.伪类 1. :link 2. :visited 3. :hover(重要) 4. :active 5. :focus(input标签获取光标焦点) 2.伪元素 1.:first-letter 2. ...
- 漏洞复现-ActiveMq任意文件写入漏洞(CVE-2016-3088)
0x00 实验环境 攻击机:Win 10 靶机也可作为攻击机:Ubuntu18 (docker搭建的vulhub靶场) 0x01 影响版本 未禁用PUT.MOVE等高危方法的ActiveM ...
- JVM线上问题排查
前言 本文介绍服务器内运行的 Java 应用产生的 OOM 问题 和 CPU 100% 的问题定位 1. 内存 OOM 问题定位 某Java服务(比如进程id pid 为 3320)出现OOM,常见的 ...
- FreeBSD 宣布 2020 年第 4 季度状态报告
FreeBSD 宣布 2020 年第 4 季度状态报告● 继续努力从 FreeBSD 基本系统中移除 GPL 协议的软件,以实现 FreeBSD 项目基本目标.● Linux 二进制兼容层的 Linu ...
- ICPC题目选讲
Traveling in the grid world 题目描述 有一个 \(n\times m\) 的格点图,两点之间走他们的连线,但是这条连线不能恰好覆盖其他整点.还要求相邻两步之间的连线不能斜率 ...
- CF1149C Tree Generator™
一.题目 点此看题 二.解法 话说老师给的课件是错的啊,把我坑了好久,我手玩样例才玩出来,最后只能去看洛谷题解了. 本题是树是用一个括号序列给出的,你要知道的是:( 代表递归下去到一个新节点,) 表示 ...
- Windows包管理器——Scoop 包管理器
Scoop 包管理器 目录 Scoop 包管理器 参考 官方 博客 声明 目录 scoop 安装&&卸载 安装( 使用 powershell) 卸载(软件的使用权归自己所有,一言不合即 ...
- EF Core 原理从源码出发(二)
紧接着我的上一篇博客,上回分析到ef 一个重要的对象,changetracker这个对象,当我们向DbContext添加对象的时候我们会调用如下代码. 1 private EntityEntry< ...