协议复习4.22

三次握手:

第一次握手:建立连接时,客户发送syn包(seq=j)到服务器,并进入syn_sent状态,等待服务器的确认,syn:同步序列号

第二次握手:服务器收到syn包,必须确认客户端的syn(ack=j+1),同时自己也发送一个syn

包(seq=k),及syn+ACK包,测试服务器进入syn_recv状态

第三次握手:客户端收到服务器的syn+ack包,向服务器发送确认包ACK(ack=k+1),此时发送完毕,客户端和服务器进入Tcp连接成功状态,完成3次握手。

HTTP的 请求流程:

1、客户端与服务端之间建立TCP的连接请求

2、客户端发送request请求到服务端

3、服务端response响应回复客户端的i请求

4、客户端与服务端之间关闭TCP的连接请求。

常用的几种请求方法:

GET:请求指定的页面信息,并且返回实体主体。

POST:向指定资源提交数据进行处理请求(如提交表单或者上传文件)。数据被包含在请求体中。post请求可能会导致新的资源的建立和/或已有资源的修改。

PUT:从客户端像服务器传送的数据取代指定的文档内容。

DELETE:请求服务器删除指定页面。

常用的业务状态码:

200  请求成功

201 添加资源成功

204 删除资源成功

301 永久重定向

302 临时重定向

400 客户端请求错误

(1)参数不对

(2)请求头不对

401 无权限访问该系统  

403 有权限但是禁止访问

401和403 的解决方法:---就是认证授权

常用的几种认证授权:

1、基本basic     

2、常规 digest

3、自定义

4、oauth2.0(微信)

404 请求资源不存在---这个可以看以下地址

405 不被允许的请求方法---请求方法错误

如果有这个请求方法,则找运维 问下是否增加了安全体系,如果增加了,把这个ip地址增加到白名单里面。

500 服务器内部错误--这个是程序员的问题

504 网关超时--这个不一定是代码的问题,也可能是第三方的问题

网关的优点:

统一的API访问入口

监控API流量

请求头:

cookid:反爬虫,认证授权

referer:请求目标地址是从哪里来的

content-type :代表的是什么样的数据格式

user-agent:代表的是访问目标服务器,是通过什么来访问的

响应头:

content-type:返回的响应数据是什么样的数据格式

常见的数据格式:JSON XML  表单

set-cookie:服务端把生成的认证凭证信息返回给客户端

HTTP:是一个无状态的协议,所以也就导致了cookie技术的发展,通过cookie能够记下用户操作的行为状态,但是cookie它是存储在客户端的,所以就不安全,为了解决安全的问题。后面就有了移动互联网的诞生,就有了token,token本质上是session原理来实现的,它成为了一个令牌。

cookie特点:

1、存储在客户端

2、不安全

以登陆为例来说明cookie的流程

1、客户输入账户和密码登陆成功

2、在服务端生成cookie的信息,通过响应头中的SET-COOKie把生成的cookie返回给客户端

3、客户端下次再请求的时候,通过请求头中的cookie把返回的cookie带上发送给服务点,服务端内部进行验证。

session流程:

1、客户端输入账户密码登陆成功

2、在服务端会生成sessionid,同时存储在服务端本地,通过响应头中的set-cookie把生成的sessionid返回给客户端

3、客户端介绍到sessionid后

4、客户端再次请求服务端(比如访问个人主页),会在请求头的ookie中带上sessionid发送给服务端

5、服务端接收到客户端发来的sessonid,与存储在服务端本地的sessionid之间会进行对比,如果一致,允许访问个人主页,如果不一致,就会重定向到登陆页面

token特点:

1、每次登陆成功后,生成的token都不一样

2、返回的token是一个随机的字符串

token的请求流程:

1、客户端使用账号和密码登陆到系统。

2、服务端接收到客户端请求的参数后,验证用户名和密码是否正确。

3、验证用户名和密码成功后,服务端会签发一个Token的值,并且把Token返回给客户端。

4、客户端获取到Token后,客户端会把Token存储起来。

5、客户端再次向服务端发送请求的时候,需要带着服务端签发的token,服务端接收到客户端发送的Token会进行校验,校验通过后服务端会返回客户端请求响应数据。

需求:输出赵四

var jsonData=
{  
    "data": 
    {
    "error_code": 0,
    "description": "",
    "cursor": 0,
    "has_more": false,
    "list": 
    [
      {
        "nickname": "张伟",
        "city": "上海",
        "country": "中国",
      },
      {
        "nickname": "赵四",
        "city": "东北",
        "country": "中国",
      }
    ]
  }
}
console.log(jsonData.data.list[1].nickname)
接口测试中,需要参考哪些信息和文档作为接口预期结果
1、响应数据与协议状态码,业务状态码
2、结合具体的业务。
接口测试的对象有如下几类:
1、web产品或者app产品
2、服务(底层服务,与web之间没有直接的交互)
3、open api:开放平台接口(接口文档往往是word文档)
 
posted @   净植  阅读(24)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示