接口测试-基础

1 网络传输知识javascript

1.1 协议java

HTTP(超文本传输协议)是一个基于请求与响应模式的、无状态的、应用层的协议。算法

1.2 Cache数据库

  • 浏览器缓存
  • 代理缓存
  • 网关缓存

1.3 Cooike后端

Cookie就是由服务器发给客户端的特殊信息,而这些信息以文本文件的方式存放在客户端,而后客户端每次向服务器发送请求的时候都会带上这些特殊的信息。跨域

1.4 Session(会话)浏览器

Session是另外一种记录客户状态的机制,不一样的是Cookie保存在客户端浏览器中,而Session保存在服务器上。客户端浏览器访问服务器的时候,服务器把客户端信息以某种形式记录在服务器上。缓存

经过Cookie传输:安全

URL地址重写,对客户端不支持Cookie的解决方案。将用户Session信息重写到URL地址中。服务器

cookie与session的区别

  1. cookie数据存放在客户的浏览器上,session数据放在服务器上;
  2. cookie不是很安全,别人能够分析存放在本地的COOKIE并进行COOKIE欺骗,考虑到安全应当使用session;
  3. session会在必定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能。考虑到减轻服务器性能方面,应当使用COOKIE;
  4. 单个cookie在客户端的限制是4K,就是说一个站点在客户端存放的COOKIE不能超过4K。

1.5 token(令牌)

 使用基于 Token 的身份验证方法,在服务端不须要存储用户的登陆记录。大概的流程是这样的:

    1. 客户端使用用户名跟密码请求登陆
    2. 服务端收到请求,去验证用户名与密码
    3. 验证成功后,服务端会签发一个 Token,再把这个 Token 发送给客户端
    4. 客户端收到 Token 之后能够把它存储起来,好比放在 Cookie 里或者 Local Storage 里
    5. 客户端每次向服务端请求资源的时候须要带着服务端签发的 Token
    6. 服务端收到请求,而后去验证客户端请求里面带着的 Token,若是验证成功,就向客户端返回请求的数据

Token机制相对于Cookie机制又有什么好处呢?

  • 支持跨域访问: Cookie是不容许垮域访问的,这一点对Token机制是不存在的,前提是传输的用户认证信息经过HTTP头传输.
  • 无状态(也称:服务端可扩展行):Token机制在服务端不须要存储session信息,由于Token 自身包含了全部登陆用户的信息,只须要在客户端的cookie或本地介质存储状态信息.
  • 更适用CDN: 能够经过内容分发网络请求你服务端的全部资料(如:javascript,HTML,图片等),而你的服务端只要提供API便可.
  • 去耦: 不须要绑定到一个特定的身份验证方案。Token能够在任何地方生成,只要在你的API被调用的时候,你能够进行Token生成调用便可.
  • 更适用于移动应用: 当你的客户端是一个原平生台(iOS, Android,Windows 8等)时,Cookie是不被支持的(你须要经过Cookie容器进行处理),这时采用Token认证机制就会简单得多。
  • CSRF:由于再也不依赖于Cookie,因此你就不须要考虑对CSRF(跨站请求伪造)的防范。
  • 性能: 一次网络往返时间(经过数据库查询session信息)总比作一次HMACSHA256计算 的Token验证和解析要费时得多.
  • 不须要为登陆页面作特殊处理: 若是你使用Protractor 作功能测试的时候,再也不须要为登陆页面作特殊处理.
  • 基于标准化:你的API能够采用标准化的 JSON Web Token (JWT). 这个标准已经存在多个后端库(.NET, Ruby, Java,Python, PHP)和多家公司的支持(如:Firebase,Google, Microsoft

1.6 JWT

JSON Web Token(JWT)是一个很是轻巧的规范。这个规范容许咱们使用JWT在用户和服务器之间传递安全可靠的信息.

JWT组成:一个JWT实际上就是一个字符串,由三部分组成,头部、载荷与签名。

header :1.Token 的类型  2.使用的算法。

Payload 是Token 的具体内容:

  • iss:Issuer,发行者
  • sub:Subject,主题
  • aud:Audience,观众
  • exp:Expiration time,过时时间
  • nbf:Not before
  • iat:Issued at,发行时间
  • jti:JWT ID

Signature:1.用 Base64 编码的 header.payload  2.加密算法加密 3.加密须要提供一个Secret(密钥)。密钥存储在服务端。

2 HTTP协议

URL:Uniform Resource Locator,统一资源定位符。

2.1 HTTP请求

HTTP请求由三部分组成,分别是:请求行、消息报头、请求正文。

请求方法:

         GET        请求获取Request-URI所标识的资源
         POST       在Request-URI所标识的资源后附加新的数据,经常使用于提交表单
         HEAD       请求获取由Request-URI所标识的资源的响应消息报头
         PUT        请求服务器存储一个资源,并用Request-URI做为其标识
         DELETE     请求服务器删除Request-URI所标识的资源
         TRACE      请求服务器回送收到的请求信息,主要用于测试或诊断
                    能够追踪一次请求中间所通过的代理服务器有哪些
         CONNECT    保留未来使用
         OPTIONS    请求查询服务器的性能,或者查询与资源相关的选项和需求
                    能够用来获取服务器端资源支持的方法

2.2 请求响应

HTTP响应也是由三个部分组成,分别是:状态行、消息报头、响应正文。

3 HTTP协议

什么是HTTPS:与SSL(安全套接层)组合使用的HTTP被称为HTTPS(HTTP Secure,超文本传输安全协议)。

4 WebSocket协议

WebSocket是一个持久化协议,升级原有HTTP中经过long poll和Ajax轮询方式,Websocket只须要一次HTTP握手,因此说整个通信过程是创建在一次链接/状态中,也就避免了HTTP的非状态性,服务端会一直知道你的信息,直到你关闭请求。

相关文章
相关标签/搜索