接口基础D20

### 一,什么是接口

## 什么是接口

- USB 是, 硬件接口

- 耳机 3.5mm 是

- api.github.com 服务端,客户端,电视

- UI:user interface 用户接口, 用户界面

- 函数: 公开访问才能是接口

- API: application programming interface , 应用程序可编程接口

接口,两个不同事物之间进行适配的一种工具、规范和协议。

接口的实现。

## 接口分类

-硬件接口:指两个硬件设备之间的连接方式。

-软件接口:简单来说就是软件程序之间数据交互的通道。

程序内部接口:是客户端与服务器的接口,用来实现客户端和服务器间的数据传递。

外部接口:外部接口常见的典型例子就是通过第三方登录、第三方支付等,通过调用第三方接口并返回当前的系统

### 二,什么是网络请求, HTTP

- 客户端,前端。主动请求。能够发起对应的请求的客户端。

- 服务端,后端。被动接受。

常见的接口协议:

http协议接口:使用最广泛,使用HTTP协议来传输数据,有get、post等,常见的测试工具postman、jmeter

websocket、dubbo

webservice接口:使用soap协议通过http传输,请求报文和返回报文都是xml格式的。常用的测试工具:soapUI

## 什么是接口测试

接口测试:本质是基于某种协议,发送一个请求给服务器,然后服务器返回一个响应数据,然后对响应数据进行分析,判断是否与我们预期的返回一致,从而

验证功能是否正确,这就是接口测试。

### 三,HTTP 请求 协议。

https:http+ssl(加密)

http默认端口:80;https默认端口:443

- 请求首行

- 请求头, headers, content-type, 数据格式,爬虫 user-agent: 限制请求的来源。

- 请求体

#### 1,请求首行

- url, 域名地址,ip

- 请求方法

- GET:用于获取资源(没有请求体)

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

- PUT:用于更新服务器的数据(数据整体更新)

- DELETE:用于删除服务器指定的数据

- OPTION:允许客户端查看服务器的性能

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

- PATCH:用于更新服务器的数据(局部更新)

- 远程 IP 地址

- 协议版本

http > tcp / ip 172.123.3.45

##### (一), 域名和 IP 地址的区别

- 域名更好记忆;

- 映射 IP 地址。

- DNS 解析: 域名 --》 ip

网络通信就是送包裹,送快递。

- 为什么要有 IP 地址。 邮政系统,送快递。

- 为什么要有端口号。 送到哪个房间。

- 为什么要有域名? 记不住 IP

访问完域名以后,要进行 DNS 解析,获取地址才能送信啊。

##### (二),GET 和 POST 的区别

- GET 表示从服务器上获取资源,POST 表示向服务器传送数据,创建资源;

- GET 没有请求体,POST 有请求体;

- GET 请求参数(query string查询字符串)放在url中以`?key1=value1&key2=value2`(query string)的形式, POST 不仅可以查询字符串,而且可以放在请求体里面。

- 为什么说 POST 比 GET 更安全?

| Body参数方式 | Content-type |

| ---------- |----------------------------------|

| Text | text/plain |

| Form | application/x-www-form-urlencoded |

| JSON | application/json |

| File | 不确定 |

#### 2,请求头

你包裹上面的说明,你寄的是什么啊,多久到啊,价值多少啊。你这个请求的说明信息。

不需要每个都了解,但是如果某个收包裹的人(服务器)要求你必须带上指定的头信息,你就要带上,不然访问不成功。。。 比如很多退件的,会给你说明,不要到付,到付拒收!!

就算他没有说明,你到付,也不会有人收。。

- user-agent

- 用户代理

- 手机,浏览器, postman, jemter

- content-type : 请求数据格式

- cookie

- 会员卡

#### 3,请求体

你的包裹。 包裹可能是空的,你把一些信息直接放到包裹说明上,懒得拆了。 --》 我很好,不用担心。放到里面多麻烦,有风险。太容易被人看到了。

快递:勿忘我

### 四,响应

#### 1,响应首行(状态行)

- 协议版本号

- 响应的状态码。

- 内部人员规定一种非常专业的信息格式,暗号。

- 0001 表示 我已收到回件,

- 0002 已装车,且一切正常。。。

- 更加简洁。

| 状态码大类 | 表示的含义 | 客户端client要做的事 | 服务器端server要做的事 |

| ---------- | --------------------------- | ------------------------------------------------------------ | ------------------------------------------------------------ |

| 1xx | Informational 信息 | 啥都不用做,知道就好 | 告诉client,信息收到了,我后续会处理 |

| 2xx | Successful 成功 | 啥都不用做,知道就好 | 告诉client,请求已正确处理 |

| 3xx | Redirection 重定向 | 重新请求返回的新地址 -> 才能获取真正需要的数据 | 告诉client,你需要的内容,由于一些原因,比如地址已发生变化了,然后返回该内容的新地址 |

| 4xx | Client Error客户端的错误 | 确保用正确的参数和信息正确,重新请求 | 告诉client,请求已正确处理 |

| 5xx | Server Error 服务器端的错误 | (一般来说)都无需啥操作 -> 往往需要服务器端改了bug后,重新发送请求 | 需要服务器Server端自己找到具体出了啥错 -> 往往是服务器端的代码的bug导致了出错 |

##### (一),最常用的状态码及含义

- Successful - 2xx:成功类,行为被成功地接受、理解和采纳

- - 200 OK

- 服务器成功返回用户请求的数据

- 往往为了简化处理

- POST创建成功后应该返回201的,创建

- 404 NOT FOUND

- 找不到资源

- 500 INTERNAL SERVER ERROR

- 服务器内部错误

- 最常见的原因是:服务器内部挂了

- 比如你传递参数中有些参数是空,而导致后台代码无法解析,出现异常而崩溃

##### (二),次常用的状态码及含义次常用的响应码及含义

- Successful - 2xx:成功类,行为被成功地接受、理解和采纳

- 201 CREATED

- 通过POST或PUT创建资源成功

- 204 NO CONTENT

- 资源修改成功,但是没有返回内容

- 常用于DELETE操作的返回

- Redirection - 3xx:重定向类,为了完成请求,必须进一步执行的动作

- 301 永久重定向

- 302 临时重定向

- 304 Not Modified 使用缓存数据

- Client Error - 4xx:客户端错误类,请求包含语法错误或者请求无法实现

- - 401 UNAUTHORIZED

- - 没有权限访问该资源

- 典型情况:用户没有登录,没有获得对应的access token而直接访问某资源

- 403 FORBIDDEN

- 禁止访问

- 典型情况:虽然用户已登录,但是去更新/删除需要更高权限才能操作的资源

- 405 METHOD NOT ALLOWED

- 方法不允许

- 举例:比如某个资源不允许POST请求,但是你确发起了POST请求

- 5xx:服务器错误

- 502 网关错误

- 504

#### 2, 响应头

- content-type, 返回数据的格式

- set-cookie: name=yuz

#### 3, 响应体

- 返回的数据

- json, text, html

### 五,cookie, session 和 token

- cookie

- http 是无状态的,没有记性。

- cookie 是让服务器记住你。发会员卡,给你推荐

- 存储在浏览器

- session。

- 在服务器记住用户信息状态的。验证

- 服务器验证

- token, 令牌。 跨平台。 只要他有这个令牌,不管他是什么身份,手机,浏览器,电视,

- 保存在客户端本地, local_storage

- 移动端流通。手机,平板,web, 第三方客户端

- 口令

- 口令是会变的。

## 什么是 Token

token 的意思是 “令牌”, "门票”,是服务端生成的一串字符串,作为客户端进行请求的一个标识。

这里有一份接口文档:

```json

http://www.keyou.site:8000/docs/

```

访问其中一个接口:

```json

GET http://api.keyou.site:8000/interfaces/

```

## Token 和 Session

1. token 是需要手动传到参数当中的。 session 派发的 session_id 自动存储在浏览器的 cookie api.keyou.site/ 当中,

在下次访问这个网站的时候,会自动带上。

2. session_id 会存到服务器,需要消耗资源, 在浏览器传输过来,要查询,也消耗资源。(IO)

3. token 不需要存储到服务器,服务器会解密,消耗 cpu,

4. token 可以跨平台,跨域。 session

### 六,输入 url 后的过程

a.域名解析,DNS 解析 -》 ip 地址(分层级)

b.发起TCP连接的三次握手,建立连接。

c.建立TCP连接后发起http请求

d.服务端响应http请求,返回响应报文

e.浏览器页面渲染,展示。

f.断开TCP连接,四次挥手

### 七,三次握手四次挥手

- 第一次握手:建立连接时,客户端向服务端发送请求报文(SYN),“我想建立连接”

- 第二次握手:服务器收到请求报文后,如同意连接,则向客户端发送确认报文(SYN/ACK)“同意建立”

- 第三次握手:客户端收到服务器的确认后,再次向服务器发送确认报文,完成连接(ACK)

- 三次握手主要是为了防止已经失效的请求报文字段发送给服务器,浪费资源。

- 第一次挥手:客户端想分手,发送消息(FIN)给服务器

- 第二次挥手:服务器通知客户端已经接受的挥手请求,返回确认消息(ACK),但还没做好分手准备;

- 第三次挥手:服务器已经做好分手准备,通知客户端(FIN)

- 第四次挥手:客户端发送消息给服务器(ACK),确认分手,服务器关闭连接。

作业:

总结以下内容:
1, GET 和 POST 区别
2, cookie , session 和 token 区别
3, 三次握手四次挥手是什么?
4,你知道的常用状态码有哪些?代表什么意思

  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值