HTTP确认访问用户身份的认证

一、何为认证

为确认 用户 本人是否真的具有访问系统的权限,就需要核对“登录者本人才知道的信息”、“登录者本人才会有的信息”

  1. 密码:只有本人才会知道的字符串信息
  2. 动态令牌:仅限本人持有的设备内显示的一次性密码
  3. 数字证书:仅限本人(终端)持有的信息
  4. 生物认证:指纹和虹膜等本人的生理信息
  5. IC 卡等:仅限本人持有的信息。

HTTP 使用的认证方式:

  1. BASIC 认证(基本认证)
  2. DIGEST 认证(摘要认证)
  3. SSL 客户端认证
  4. FormBase 认证(基于表单认证)

基于表单认证的标准规范尚未有定论,一般会使用 Cookie 来管理Session(会话)

三、基于HTTP的追加功能和协议

3.1 若想在现有 Web 实现所需的功能,以下这些 HTTP 标准就会成为瓶颈。

1. 一条连接上只可发送一个请求
2. 请求只能从客户端开始。客户端不可以接收除响应以外的指令
3. 请求 / 响应首部未经压缩就发送。首部信息越多延迟越大
4. 发送冗长的首部。每次互相发送相同的首部造成的浪费较多。
5. 可任意选择数据压缩格式。非强制压缩发送。

Ajax 的解决方法:
1. 由于它只更新一部分页面,响应中传输的数据量会因此而减少,这一优点显而易见
2.而利用 Ajax 实时地从服务器获取内容,有可能会导致大量请求产生。
3.另外,Ajax 仍未解决 HTTP 协议本身存在的问题

Comet 的解决方法:
1. 务器端接收到请求,在处理完毕后就会立即返回响应,
但为了实现推送功能,Comet 会先将响应置于挂起状态,当服务器端有内容更新时,再返回该响应

2. 一次连接的持续时间也变长了。期间,为了维持连接会消耗更多的资源。
3. 另外,Comet也仍未解决 HTTP 协议本身存在的问题。




3.2 使用浏览器进行全双工通信的WebSocket

利用 Ajax 和 Comet 技术进行通信可以提升 Web 的浏览速度。但问题在于通信若使用 HTTP 协议,就无法彻底解决瓶颈问题。WebSocket网络技术正是为解决这些问题而实现的一套新协议及 API。

当时筹划将 WebSocket 作为 HTML5 标准的一部分,而现在它却逐渐变成了独立的协议标准。WebSocket 通信协议在 2011 年 12 月 11 日,被 RFC 6455 - The WebSocket Protocol 定为标准

一旦 Web 服务器与客户端之间建立起 WebSocket 协议的通信连接,之后所有的通信都依靠这个专用协议进行。通信过程中可互相发送JSON、XML、HTML 或图片等任意格式的数据

由于是建立在 HTTP 基础上的协议,因此连接的发起方仍是客户端,而一旦确立 WebSocket 通信连接,不论服务器还是客户端,任意一方都可直接向对方发送报文

WebSocket 协议特点
1. 推送功能
2. 减少通信量

更多参考https://www.ruanyifeng.com/blog/2017/05/websocket.html

posted @ 2020-10-22 18:37  kgwei  阅读(380)  评论(0编辑  收藏  举报