网络协议是接口通信过程中最为核心的一个体系,HTTP网络协议是目前业内应用最为广泛的一种通信协议; HTTP是TCP之上的应用层
1. 基于访问的url进行识别,与服务器进行连接的建立,
解析url,识别 IP 地址,基于IP 地址与服务器进行连接和通信,
最终建立了一个连接的通道(C-S),连接通道是基于TCP进行建立的临时通道
2. 基于C端请求的数据内容,进行一次请求的下发,至服务器
3. 服务端解析请求的数据内容,生成一个响应结果,返回至C端
4. 客户端接收到响应内容,基于前端进行数据的渲染与展示
5. 断开最初生成的临时链接
总结:
浏览器通过解析url,识别ip地址,通过ip与服务器进行链接-->客户端向服务器发送请求-->服务器解析请求内容,返回响应结果给客户端-->客户端接收响应内容并展示--> 断开链接
所有的请求都是基于客户端下发,服务端进行响应,并生成响应结果,返回至客户端
1. HTTP网络协议是无状态连接,要解决无状态问题就需要牵扯到接口关联/鉴权机制的概念
每一次接口请求都与其他接口的请求没有任何关系
2. 既然有了TCP链接通道,为什么又是无状态连接
keep-alive: 保持TCP连接通道持续存在
3. 头部(header)和身体(body)是请求和响应中必定存在的两个部分
header: 用于定于到通信数据的规范化
body: 一般都是只用于传递数据内容
4. 基于HTTP网络协议进行请求的内容拆解:
请求下发一定是基于URL来实现的,
url:统一资源定位符,用于定位;
模板: 网络协议 :// IP : Port ? a=1 & b=2
http:默认端口 80; https: 默认端口 443
5. 请求方法:
POST: 用于提交数据,如:表单
GET: 用于获取数据,如:查询
i. 请求的数据内容是否明文显示和请求方式无关:
业内潜规则定义get需要明文显示,post是在body中存在;
ii. 对于请求的数据内容是否有长度显示,其实和请求方式无关:
本质上是因为url有长度限制,所以才有了这个概念
iii. 安全性问题,只是因为get在url中明文显示,所以安全性略差
接口关联性质,解决HTTP无状态连接情况是基于鉴权机制来实现的,业内常用的cookie,session,token.
cookie: 本地缓存机制; 早期为了提升速度,增加了缓存的机制.
session: 临时会话机制; 中期关注到交互,就产生了session机制.
当C端访问到服务端时,就会提交一个授权申请的请求,服务端会基于本次的申请,生成一个临时会话,用户端的所有数据请求都会基于这个临时会话与S端进行交互,基于id来管理所有的session.
token: 多个设备同步信息处理,临时身份牌的形式
到现在,对于多个设备同步信息的处理,session很难很有效率的实现,于是乎就出现了token的机制,临时身份牌的形式.