day1_接口的基础知识

1、前端、后端区别?

前端【client】:客户端。通俗来讲,一般情况下,web端或app端能看见的地方以及一些简单的校验,都属于前端。ios操作系统使用的语言有swift、object-c,Android操作系统使用的语言有java、h5,浏览器使用的语言有html、css、js

后端 【server】:服务器端。web端或app端的系统逻辑、如购物时扣除余额,微博发到哪里等都是由后端实现的,主要使用的语言有java、python、php、.net等...

2、什么是接口?

  接口就是把client和server端联系起来的信息中转站。为各种不同平台提供数据传输,数据共享。根据作用域的不同,可分为三个方面:

(1)用户接口:简述用户操作和反馈结果等。

(2)程序内部的接口:方法与方法、模块与模块之间的交互,程序内部抛出的接口,如登录发帖,发帖就必须要登录,如果不登录不能发帖,发帖和登录这两个模块之间就要有交互,就会抛出一个接口,进行内部系统调用。

(3)系统对外的接口:从别人的网站或服务器上获取资源或信息,对方不会提供数据库共享,只能提供一个写好的方法来获取数据,如购物网站和第三方支付之间,购物网站支付时可选择第三方支付方法,但第三方不会提供自己的数据库给购物网站,只会提供一个接口,供购物网站进行调用。

3、接口的分类?

  接口分类一般分为两种:

(1)webService接口:走soap协议通过http传输,请求报文和返回报文都是xml格式的。测试时需要通过工具才能进行调用、测试。少数公司还在使用这种接口,如医院等行业。

(2)http api接口:走http协议,通过路径来区分调用的方法,请求和报文都是key-value形式的,目前来讲最常用的请求方式有get和post等方法。

4、接口返回数据

接口返回的数据一般都是键值对,也就是key-value格式。返回报文有多种数据类型。一般较常见的是json串。

5、HTTP接口

5.1、 特点

Http协议是建立在TCP协议基础之上的,当浏览器需要从服务器获取网页数据的时候,会发出一次Http请求。Http会通过TCP建立起一个到服务器的连接通道,当本次请求需要的数据完毕后,Http会立即将TCP连接断开,这个过程是很短的。所以Http连接是一种短连接,是一种无状态的连接。

HTTP协议的主要特点可概括如下:
①.支持客户/服务器模式。
②.简单快速:客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用的有GET、HEAD、POST。每种方法规定了客户与服务器联系的类型不同。由于HTTP协议简单,使得HTTP服务器的程序规模小,因而通信速度很快。

③.灵活:HTTP允许传输任意类型的数据对象。正在传输的类型由Content-Type加以标记。
④.无连接:无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。
⑤.无状态:HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快。

 

5-2 、协议结构

 

 

A、HTTP请求消息

客户端发送一个HTTP请求到服务器的请求消息包括以下格式:

请求行(request line)、请求头部(header)、空行和请求数据四个部分组成。  

1、请求行

请求行由请求方法字段、URL字段和HTTP协议版本字段3个字段组成,它们用空格分隔。例如,GET /index.html HTTP/1.1。

HTTP协议的请求方法有GET、POST、HEAD、PUT、DELETE、OPTIONS、TRACE、CONNECT。
最常用的方法有:
GET方法:在浏览器的地址栏中输入网址的方式访问网页时,浏览器采用GET方法向服务器获取资源,

POST方法要求被请求服务器接受附在请求后面的数据,常用于提交表单。
2、请求头部

请求头部由关键字/值对组成,每行一对,关键字和值用英文冒号“:”分隔。请求头部通知服务器有关于客户端请求的信息,典型的请求头有:

 

User-Agent:产生请求的浏览器类型。

 

Accept:客户端可识别的内容类型列表。

 

Host:请求的主机名,允许多个域名同处一个IP地址,即虚拟主机。\

 

cookie:用于长久地存储请求过程中产生的某一key-value信息到本地,并传输给其他需要的请求;通常要与服务端的存放的session键值对进行对比是否一致。

 

3、空行

最后一个请求头之后是一个空行,发送回车符和换行符,通知服务器以下不再有请求头。


4、请求正文 

请求数据不在GET方法中使用,而是在POST方法中使用。POST方法适用于需要客户填写表单的场合。与请求数据相关的最常使用的请求头是Content-Type和Content-Length。

 

B、HTTP响应消息

在接收和解释请求消息后,服务器返回一个HTTP响应消息。

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

1、状态行格式如下:

HTTP-Version Status-Code Reason-Phrase CRLF

其中,HTTP-Version表示服务器HTTP协议的版本;Status-Code表示服务器发回的响应状态代码;Reason-Phrase表示状态代码的文本描述。
状态代码有三位数字组成,第一个数字定义了响应的类别,且有五种可能取值:
1xx:指示信息--表示请求已接收,继续处理
2xx:成功--表示请求已被成功接收、理解、接受
3xx:重定向--要完成请求必须进行更进一步的操作
4xx:客户端错误--请求有语法错误或请求无法实现
5xx:服务器端错误--服务器未能实现合法的请求
常见状态代码、状态描述、说明:

200 OK      //客户端请求成功

302 重定向
400 Bad Request  //客户端请求有语法错误,不能被服务器所理解
401 Unauthorized //请求未经授权,这个状态代码必须和WWW-Authenticate报头域一起使用 
403 Forbidden  //服务器收到请求,但是拒绝提供服务(权限不足)
404 Not Found  //请求资源不存在,eg:输入了错误的URL
500 Internal Server Error //服务器发生不可预期的错误
503 Server Unavailable  //服务器当前不能处理客户端的请求,一段时间后可能恢复正常
eg:HTTP/1.1 200 OK (CRLF)

2、响应报头

响应头用于描述服务器的基本信息,以及数据的描述,服务器通过这些数据的描述信息,可以通知客户端如何处理等一会儿它回送的数据。

3、响应正文

响应体就是响应的消息体,如果是纯数据就是返回纯数据,如果请求的是HTML页面,那么返回的就是HTML代码,如果是JS就是JS代码

 

C、关于Get&post请求区别的几点误区

  • GET和POST请求:

    如果是get请求的话,直接在浏览器里输入就行了,只要在浏览器里面直接能请求到的,都是get请求,如果是post的请求的话,就不行了,就得借助工具来发送。

  •  GET请求和POST请求的区别:

    1、GET使用URL或Cookie传参。而POST将数据放在BODY中。

    2、GET的URL会有长度上的限制,则POST的数据则可以非常大。

    3、POST比GET安全,因为数据在地址栏上不可见。

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

  • 其实上面这几点,只有最后一点说的是比较靠谱的,第一点post请求也可以把数据放到url里面,get请求其实也没长度限制,post请求看起来参数是隐式的,稍微安全那么一些些,但是那只是对于小白用户来说的,就算post请求,你通过抓包也是可以抓到参数的。

   -摘自网站:www.besttest.cn

6、什么是接口测试

功能测试是针对client端和server端进行业务逻辑的求证测试,而接口测试是功能测试的其中一种方式。

但接口测试是在不通过页面,也就是说只针对server端的情况下,根据接口文档 ,对业务逻辑进行正常、异常的求证测试。

具体操作过程为:通过接口规范文档上的调用地址,请求参数,拼接报文,然后发送请求,检查返回结果。

posted @ 2018-08-17 15:23  伞落雨晴  阅读(162)  评论(0编辑  收藏  举报