接口、抓包、http等相关协议整理

1.B/S与C/S优缺点对比

c/s响应速度快,安全性强,用户体验好,一般应用于局域网中,但是开发维护成本高;

B/S可以实现跨平台,客户端零维护,但是个性化能力低,响应速度较慢。所以有些单位日常办公应用B/S,在实际生成中使用C/S结构。

2.HTTP1.0和HTTP1.1的区别

HTTP 1.0规定浏览器与服务器只保持短暂的连接,浏览器的每次请求都需要与服务器建立一个TCP连接,服务器完成请求处理后立即断开TCP连接,

服务器不跟踪每个客户也不记录过去的请求。

访问一个包含有许多图像的网页文件的整个过程包含了多次请求和响应,每次请求和响应都需要建立一个单独的连接,每次连接只是传输一个文档和图像,

上一次和下一次请求完全分离。即使图像文件都很小,但是客户端和服务器端每次建立和关闭连接却是一个相对比较费时的过程,并且会严重影响客户机和服务器的性能。

HTTP 1.1支持持久连接,在一个TCP连接上可以传送多个HTTP请求和响应,减少了建立和关闭连接的消耗和延迟。一个包含有许多图像的网页文件的多个请求和应答可以在一个连接中传输,

但每个单独的网页文件的请求和应答仍然需要使用各自的连接。HTTP 1.1还允许客户端不用等待上一次请求结果返回,就可以发出下一次请求,但服务器端必须按照接收到客户端请求的先后顺序依次回送响应结果,

以保证客户端能够区分出每次请求的响应内容,这样也显著地减少了整个下载过程所需要的时间。基于HTTP 1.1协议的客户机与服务器的信息交换过程。

HTTP 1.1 还通过增加更多的请求头和响应头来改进和扩充HTTP 1.0 的功能。

HTTP 1.1中增加Host请求头字段后,WEB浏览器可以使用主机头名来明确表示要访问服务器上的哪个WEB站点,这才实现了在一台WEB服务器上可以在同一个IP地址和端口号上使用不同的主机名来创建多个虚拟WEB站点。HTTP 1.1 的持续连接,也需要增加新的请求头来帮助实现,例如,Connection 请求头的值为Keep-Alive 时,客户端通知服务器返回本次请求结果后保持连接;Connection 请求头的值为close 时,客户端通知服务器返回本次请求结果后关闭连接。 HTTP 1.1还提供了与身份认证、状态管理和Cache缓存等机制相关的请求头和响应头。

3. http请求方式

请求方式:

HTTP1.0定义了三种请求方法: GET, POST HEAD方法。

HTTP1.1新增了五种请求方法:OPTIONS, PUT, DELETE, TRACE CONNECT 方法。

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

HEAD     类似于get请求,只不过返回的响应中没有具体的内容,用于获取报头

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

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

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

CONNECT  HTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器。

OPTIONS  允许客户端查看服务器的性能。

TRACE    回显服务器收到的请求,主要用于测试或诊断。

4.GET和POST请求的区别

1GET使用URLCookie传参。而POST将数据放在BODY中。

 

2GETURL会有长度上的限制,2kbPOST的数据则可以非常大,默认不受限制

 

3PostGET安全,因为数据在地址栏上不可见。

 

4、一般get请求用来获取数据,post请求用来发送数据。

5.http请求--消息头Request

请求消息包括以下格式:

请求行、请求头部、空行和请求数据四个部分组成。

Accept: text/html,image/*      -- 浏览器接受的数据类型

Accept-Charset: ISO-8859-1     -- 浏览器接受的编码格式

Accept-Encoding: gzip,compress  --浏览器接受的数据压缩格式

Accept-Language: en-us,zh-     --浏览器接受的语言

Host: www.it315.org:80          --(必须的)当前请求访问的目标地址(主机:端口)

If-Modified-Since: Tue, 11 Jul 2000 18:23:51 GMT  --浏览器最后的缓存时间

Referer: http://www.it315.org/index.jsp      -- 当前请求来自于哪里

User-Agent: Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0)  --浏览器类型

Cookie:name=eric                     -- 浏览器保存的cookie信息

Connection: close/Keep-Alive            -- 浏览器跟服务器连接状态。close: 连接关闭  keep-alive:保存连接。

Date: Tue, 11 Jul 2000 18:23:51 GMT      -- 请求发出的时间

6.http响应

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

7.HTTP状态码

状态代码有三位数字组成,第一个数字定义了响应的类别,共分五种类别:

 

1xx:指示信息--表示请求已接收,继续处理

 

2xx:成功--表示请求已被成功接收、理解、接受

 

3xx:重定向--要完成请求必须进行更进一步的操作

 

4xx:客户端错误--请求有语法错误或请求无法实现

 

5xx:服务器端错误--服务器未能实现合法的请求

常见状态码:

 

200 OK                        //客户端请求成功

 

400 Bad Request               //客户端请求有语法错误,不能被服务器所理解

 

401 Unauthorized              //请求未经授权,这个状态代码必须和WWW-Authenticate报头域一起使用

 

403 Forbidden                 //服务器收到请求,但是拒绝提供服务

 

404 Not Found                 //请求资源不存在,eg:输入了错误的URL

 

500 Internal Server Error     //服务器发生不可预期的错误

 

503 Server Unavailable        //服务器当前不能处理客户端的请求,一段时间后可能恢复

 

8.保存会话的技术

8.1.Cookie原理分析

8.2 Session与Cookie的区别

Cookie是把数据保存在浏览器端的内存中

Session把数据保存在服务器端的内存中

cookiesession的联系

当服务器端生成一个session时就会向客户端发送一个cookie保存在客户端,这个cookie保存的是sessionsessionId。。

这样才能保证客户端发起请求后客户端已经登录的用户能够与服务器端成千上万的session中准确匹配到已经保存了该用户信息的session

同时也能够确保不同页面之间传值时的正确匹配。

9.接口测试

9.1.什么是接口?

  API接口包括接口地址、传入参数和返回参数

 

9.2.接口的分类:

  1.webservice接口

  webservice是走soap协议通过http传输,请求报文和返回都是xml格式

  2.http api接口  

   http api接口是走http协议,通过路径来区分调用的方法,请求报文都是key-value形式的,返回报文一般都是json

请求协议:

http --- 普通的http请求

https --- 加密http请求,传输数据更加安全

 

请求IP:就是指提供接口的系统所部署的服务器地址

请求端口:如果不填端口,默认是80,否则需要填写端口号 

接口路径:指系统提供的接口在什么位置

10.接口测试用例的编写

10.1接口测试用例编写要点

测试每个参数类型不合法的情况

测试每个参数取值范围不合法的情况

测试参数为的情况

测试参数前后台定义的一致性

测试每个参数的上下限(这里容易出致命的BUG,如果程序处理不当,可能导致崩溃)

测试每个参数取值不合理的情况(包括取的值不属于自己,取值在这阶段不会出现,取值超出了自己所拥有的数量或者范围)

如果两个请求有严格的先后顺序,需要测试调转顺序的情况

自己和自己的交易、聊天等操作(这种特别容易遗漏)

10.2 接口测试:json

Json传输数据效率更高,所以部分场景下使用HTMLXML

但是JSON语言描述不及标签语言,所以部分场景下使用HTMLXML

如果传递少量数据,使用JSON

11.接口测试工具及原理

11.1常见的接口测试工具

• 典型商业工具:loadrunner,soapui

• 典型开源工具: jmeter

• 扩展插件:POSTMAN

 

 

 

原文地址:https://www.cnblogs.com/csdnxc/p/14063221.html