Http网络协议的介绍:
目前市场中应用最主流的通信协议是HTTP,所有的软件系统,都是基于HTTP网络协议实现的数据传递。
基于网络协议实现数据传递的内容叫做接口。
请求下发——数据传递——相应生成——返回响应结果
请求的方式:
URL:统一资源定位符,用于定位到每一个指定的接口。
网络协议://ip:port/path?arg1=value&arg2=value2
例如:
https://www.baidu.com/s?wd=1&rsv_spt=1&rsv_iqid=0xce56182e00021963&issp=1&f=8&rsv_bp=1&rsv_idx=2&ie=utf-8&tn=baiduhome_pg&rsv_enter=0&rsv_dl=tb&rsv_sug3=2&rsv_sug1=1&rsv_sug7=100&rsv_btype=i&prefixsug=1&rsp=7&inputT=1175&rsv_sug4=1734
http默认端口为80 https默认端口为443
https://14.215.177.38:443/s?都是本次请求携带的参数
HTTP通信原理:
1、浏览器基于URL的域名解析出的IP地址
2、基于IP地址与服务器进行连接。
3、客户端构成http请求。头部信息(header)和通信数据(body)内容
4、服务器生产相应结果
5、将相应结果原路返回
6、基于前端渲染,进行展示
请求方法:
get:
请求的参数实在URL中显示的
获取数据
因为URL长度有限制,所以请求的参数是存放在body中的
post:
请求的参数是存在body中的
提交数据
因为请求的参数在body,URL不会超长
http请求默认是无状态连接,但是请求头中经常可以看到keep-alive(保持连接)的 设置,既然http是无状态的,又如何保持连接呢?
考虑到资源的使用及请求的效率,所以http被设计成无状态模式,意味着每一条请求彼此之间都不会存在连接和关系。
1、登录接口成功
2、无权进行基于用于查看授权信息
现在的业务上基于鉴权机制来实现的权限浏览
cookie session token
keep-alive指的是TCP的连接存在需要保持
http网络协议2.x提供了长连接,类似于TCP
TCP主要应用在c/s架构的软件,端游,QQ微信及时通信
鉴权机制:cookie session token
早期:cookie:第一次访问的时候,将部分资源保存在本地的cookie文件中。存放在浏览器里,比如:购物车(不同商品信息写入cookies),登录,充值
中期:session,永久的cookies值。永久的cookies系,统开始出现了交互的形态,要交互就需要会话,于是乎session临时会话产生了,基于会话ID(sessionid)保存在服务器上,传递到客户端,保存在内存里。
资源占有,session超过时间。
清除session ID。
后期:系统开始授权的身份令牌模式(token),发放给客户端。
主流架构:
微服务架构行业内最火的一套体系。(注册中心nacos)
Nacos 支持基于 DNS 和基于 RPC 的服务发现(可以作为springcloud的注册中心)
RPC
ribbon
https:可以防止信息被篡改(完整性) 安全保障。加密性。
http+加密+身份认证+完整性保护=https