1、HTTP是无状态的协议
http是一个无状态的协议,但是互联网产品的发展,需要记住用户的操作行为习惯
1.1HTTP的缺陷,以及HTTPS的特性
HTTP的协议它是存在缺陷的,这些缺陷主要为:
1、通信内容是明文,内容很可能被第三方获取到
2、不验证通信方的身份信息,容易被伪装
3、无法证明请求头的完整性
基于HTTP存在这些缺陷,也就有了HTTPS的协议,我们可以把HTTPS可以汇总为:
HTTPS=HTTP+加密+认证+完整性保护。
基于这样一层的设计,相对来书还是比较安全的,HTTPS不是全新的协议,它知识在HTTP的协议基础上新增SLL和TLS。在前面我们知道HTTP是和TCP直接通信。那么在HTTPS中,HTTP先和SSL通信,SSL再和TCP来进行通信。
1.2cookie
cookie:主要是存储用户操作行为的数据,在早期的互联网产品中,用户登录系统的凭证都是由cookie来进行记录的,但是由于是存储在客户端的(本机的电脑),所以是不安全的,基本目前登录认证的凭证不会再使用cookie的技术了
1.3session
由于cookie是存储在客户端的,它不安全,所以session是把登录成功后的数据存储在服务端
1.3.1session流程
由图片可知 session流程为
1、客户端输入账户和密码,点击登录
2、登录成功后,会在服务器把用户登录成功后的信息生成一个sessionid的凭证,并且储存在服务端
3、然后服务端通过响应头中的set-cookie把生成的sessionid返回给客户端
4、客户端查看个人主页时,客户端会通过请求头中的cookie,把set-cookie返回的sessionid带上,发送给服务器
5、服务端接受到客户端发送的sessionid,和存储在服务端的sessionid做一个对比
6、如果对比一致,用户可以继续访问系统的任何功能,如果不一致,则立刻跳转到登录的页面
1.4token
本质上是session的原理,我们可以把它理解为一个令牌,每次登录成功后,返回的token都是随机的字符串 jwt的技术来实现
1.4.1token流程
1、客户端输入账户和密码,点击登录
2、登录成功后,会在服务端把用户登录成功后的信息生成一个Token的凭证,同时了存储在服务端
3、服务端会通过响应数据或者是响应头中的set-cookie返回给客户端
4、那么客户端再次向服务端发送请求,会在请求参数或者请求头中的Authuration中带上返回来的token发送给服务端
5、服务端接收到客户端发送的Token,和存储在服务端的Token作一个对比
6、如果对比一致,用户可以继续访问系统的任何功能,如果对不一致,立刻跳转到登录的页面
2、HTTP的认证系统
HTTP认证体系 HTTP/1.1版本中,使用的认证方式具体为:
BASIC认证,也就是基本认证DIGEST认证,也就是摘要认证SSL客户端认证 FormBase认证,也就是基于表单认证
2.1BASIC
基本认证采用Base-64编码方式,但是不是加密的处理方式。不需要附加任何信息可对其进行解码,那么在HTTP等 非加密通信的线路上进行BSCIC认证的过程中,很容易被人进行获取信息,安全体系不够高。
2.2DIGEST
DIGEST的认证体系是为了解决BASIC的缺陷之一的,它也是采用质询/响应的模式,但是不会直接发送明文密码。 所谓质询/响应模式指的是一开始一方先发送认证要求给另外一方,接着使用从另一方那接收到的质询码计算生成 响应码,最后将响应码返回给对方进行认证的方式。