接口网络基础

231 阅读4分钟

●网络接口⇌传递数据的通道

1.网络接口指的网络设备的各种接口,我们现今正在使用的网络接口都为以太网接口。

前端 与后端 进行交互,通过后端封装的接口 实现传输

接口测试:是测试系统组件间接口的一种测试

接口主要包括:

  • 1.同一个系统中模块与模块间的接口/前端后端接口 →内部接口,
  • 2.另一个是跨系统平台的对接 →外部接口--第三方接口

●常见接口协议:

HTTP类型/协议:通过 GETPOST 等方法来获取数据,在数据处理上效率较高

一个http request指的是从客户端到服务端的请求消息,包括以下信息:

  • HTTP版本/请求地址url:
  • 请求方法:GET、POST
  • 请求头:content-type:客户端传递到服务器端的数据格式
  • 请求正文:请求参数

服务端返回:

  • http状态码:标记响应状态的一个标识

  • 响应头:response header cookie\token

  • 响应正文:针对请求从服务器响应回来的数据 比如xml、json等 常见http状态码

    200 - 请求成功 301 - 资源(网页等)被永久转移到其它URL 404 - 请求的资源(网页等)不存在 500 - 内部服务器错误 状态码查询

get和post请求区别:

1.功能不同:get 是从服务器上获取数据。post 是向服务器传送数据。

2.过程不同:get 是把参数数据队列加到提交表单的 ACTION 属性所指的 URL 中,值和表单内各个字段一一对应,在URL中可以看到。

post 是通过 HTTP post 机制,将表单内各个字段与其内容放置在 HTML HEADER 内一起传送到 ACTION 属性所指的 URL 地址。用户看不到这个过程。

3.获取值不同:对于 get 方式,服务器端用 Request.QueryString 获取变量的值。对于 post 方式,服务器端用 Request.Form 获取提交的数据。

4.传送数据量不同:get 传送的数据量较小,不能大于2KB。post 传送的数据量较大,一般被默认为不受限制。

5:安全性不同:get 安全性非常低。post 安全性较高。

●剖析cookie session token(令牌)

  1. cookie:在客户端存储用户的一些数据。比如说用户名信息
  2. session:在服务器端,记录用户的请求状态,一般默认时间是30min。
  3. token:用计算成本替换存储空间成本

例如会员卡机制。session_id 会存在 cookie 中,每次请求 cookie 中的所有信息都会传送给服务器,服务器通过 session_id 来识别是否是同一个用户的请求。不是同一个用户的话,就会要求用户重新登录。

为什么会有这种机制? 因http请求是无状态的。

Cookie 的机制

服务器单从网络连接上无从知道客户身份。怎么办呢?就给客户端们颁发一个通行证吧,每人一个, 无论谁访问都必须携带自己通行证。这样服务器就能从通行证上确认客户身份了。这就是 Cookie 的工作原理。

当用户第一次访问并登录一个网站的时候,cookie 的设置以及发送会经历以下4个步骤:

  • 客户端发送一个请求到服务器;
  • 服务器发送一个 HttpResponse 响应到客户端,其中包含 Set-Cookie 的头部;
  • 客户端保存 cookie,之后向服务器发送请求时,HttpRequest 请求中会包含一个 Cookie 的头部;
  • 服务器返回响应数据。

Session 实现原理

服务器可以为每个用户浏览器创建一个会话对象( session对象) 服务器创建 session 出来后,会把 session 的 id 号,以 cookie 的形式回写给客户机, 这样,只要客户机的浏览器不关,再去访问服务器时,都会带着 session 的 id 号去, 服务器发现客户机浏览器带 session id 过来了,就会使用内存中与之对应的 session 为之服务。

Token的原理

当用户第一次登录后,服务器生成一个 token 并将此 token 返回给客户端, 以后客户端只需带上这个 token 前来请求数据即可,无需再次带上用户名和密码。

  • 用户通过用户名和密码发送请求
  • 程序校验
  • 程序返回一个 Token 给客户端
  • 客户端存储 Token,并且每次发送请求携带 Token
  • 服务端验证 Token,并返回数据

支持跨域访问: Cookie是不允许垮域访问的,token支持;

无状态: token无状态,session有状态的; Cookie不支持手机端访问的;