《图解Http》8: 用户身份认证Cookie管理session; 9:HTTP的追加协议(websoket, webDAV)
- 基本认证,(安全等级低,多数网站不使用)
- Digest认证:(也不怎么用)
- SSL客户端认证:(凭借客户端证书认证,如网银登陆)
- 表单认证:用户名/密码。(常用)
SSL客户端认证采用two-factor authentication
SSL客户端证书用来认证客户端计算机,然后再用基于表单认证的密码确认是用户本人的行为。
8.5表单认证
表单认证没有共同标准规范,每个Web网站上都有不同的表现方式。
原理是通过服务器的Web应用,将客户端发送过来的用户🆔和㊙️与之前登陆过的信息做匹配来进行认证。
8.52 Session管理,Cookie应用
一般使用Cookie来管理Session。(用以弥补HTTP协议中不存在的状态管理功能)
博客:https://www.cnblogs.com/chentianwei/p/9495466.html
9 基于HTTP的功能追加协议
9.2 消除瓶颈的SPDY
Google2010年发布的。
SPeeDY: 解决HTTP性能瓶颈,缩短页面加载时间
9.21 瓶颈
Facebook等网站海量用户发布的内容,为了尽可能的实时显示这些更新,需要服务器上一有更新,就需要直接反馈到客户端解密上。
- 一条连接只可发送一个请求
- 请求只能从客户端开始。客户端不可以接收除响应以外的指令
- 请求/响应的header 未压缩就发送。首部信息越大,延迟就大。
- 发送冗长的首部,每次互相发相同的首部造成浪费。
Ajax解决方法
异步JavaScript和XML技术:有效利用JavaScript和DOM的操作,以达到局部Web页面替换加载的通信手段。
核心是:XMLHttpRequest的API,通过Js的调用就能和服务器进行HTTP通信。
缺陷:仍未解决HTTP协议本身的问题。
9.22SPDY
在应用层和传输层之间加上会话层。
- 多路复用流: 单一的TCP连接可以无限制处理多个请求
- 可以为请求赋予优先级
- 压缩HTTP header
- 推送:服务器主动向客户端推送数据。无需客户端请求。
但是当一个web网站上使用多个域名下的资源,改善效果就手段了限制。
9.3WebSocket 全双通通信
https://www.cnblogs.com/chentianwei/p/8690304.html
在WebSocket API中,浏览器和服务器只需要完成一次握手,两者之间就直接可以创建持久性的连接,并进行双向数据传输。
特点:
- 推送功能:服务器直接发送数据给客户端,无需客户端先发起request。
- 减少通信量: header信息小。
第一次连接的握手步骤:
- 握手-请求: header fields中加上 Upgrade: websocket等首部设置。
Sec-WebSocket-key: 一串乱字符, 记录握手过程中必不可少的键值
Sec-WebSocket-Protocol:chat, superchat, 记录使用的子协议
⚠️: Upgrade: websocket和Connection: Upgrade;
- 握手-响应:对之前的请求返回status code: 101 Switching Protocols,
Sec-WebSocket-Accept: 一串乱字符, 这串字符是握手-请求中的Sec-WebSocket-key生成的。
9.4 HTTP2.0
https://ihower.tw/blog/archives/8489
9.5 Web服务管理文件的WebDAV
web-based distributed authoring and versioning
对Web服务器上的内容直接进行文件复制,编辑的全面文件管理操作的分布式文件系统。
作为HTTP1.1的扩展,定义在RFC4918。