第七章
HTTP的缺点
- 通信使用明文可能会被窃听
- TCP/IP是可能被窃听的网络
- 加密处理防止被窃听
- 不验证通信方的身份就可能遭遇伪装
- 无法证明报文的完整性,可能已遭篡改
- HTTP加上加密处理和认证以及完整性保护后即是HTTPS
- HTTPS是身披SSL外壳的HTTP
- HTTP通信接口部分用SSL(Secure Socket Layer)和TLS(Transport Layer Security)代替
- 相互交换密钥的公开密钥加密技术
- SSL采用一种叫做公开密钥加密(Public-key-cryptography)的加密处理方式
- 证明公开密钥正确性的证书
- 可以使用由数字证书认证机构(CA, Certificate Authority)和其相关机关颁发的公开密钥证书
HTTPS的安全通信机制
- 报文中包含客户端支持的SSL的指定版本、加密组件(Cipher Suite)列表(所使用的加密算法以及密钥长度等)
- 客户端一样,在报文中包含SSL版本以及加密组件
- 服务器发送Certificate报文。报文中包含公开密钥证书
- 服务器发送Server Hello Done报文通知客户端,最初阶段的SSL握手协商部分结束
- 客户端以Client Key Exchange报文作为回应。报文中包含通信加密中使用的一种被称为Pre-master secret的随机密码串
- 客户端继续发送Change Cipher Spec报文。该报文会提示服务器,在此报文之后的通信会采用Pre-master secret密钥加密
- 该报文包含连接至今全部报文的整体校验值。这次握手协商是否能够成功,要以服务器是否能够正确解密该报文作为判定标准
- 应用层发送数据时会附加一种叫做MAC(Message Authentication Code)的报文摘要。MAC能够查知报文是否遭到篡改,从而保护报文的完整性
- HTTPS也存在一些问题,那就是当使用SSL时,它的处理速度会变慢
第八章
BASIC认证
DIGEST认证
- DIGEST认证同样使用质询、响应的方式
- 所谓质询响应方式是指,一开始一方会先发送认证要求给另一方,接着使用从另一方那接收到的质询码计算生成响应码。最后将响应码返回给对方进行认证的方式
SSL客户端认证
- SSL客户端认证的认证步骤
- SSL客户端认证采用双因素认证
- SSL客户端认证不会仅依靠证书完成认证,一般会和基于表单认证组合形成一种双因素认证
- SSL客户端认证必要的费用
基于表单认证
- 客户端会向服务器上的Web应用程序发送登录信息(Credential),按登录信息的验证结果验证
- 认证多半为基于表单认证
- Session管理及Cookie应用
第九章
基于HTTP的协议
消除HTTP瓶颈的SPDY
-
HTTP的瓶颈
- 一个连接上只可发送一个请求
- 请求只能从客户端开始。客户端不可以接收除响应以外的指令
- 请求、响应首部未经压缩就发送。首部信息越多延迟越大
- 发送冗长的首部。每次互相发送相同的首部造成的浪费较多
-
SPDY的设计与功能
- SPDY没有完全改写HTTP协议,而是在TCP/IP的应用层与传输层之间通过新加会话层的形式运作。同时,考虑到安全性问题,SPDY规定通信中使用SSL
- 多路复用流
- 通过单一的TCP连接,可以无限制处理多个HTTP请求。所有请求的处理都在一条TCP连接上完成,因此TCP的处理效率得到提高
- 赋予请求优先级
- 可以给请求逐个分配优先级顺序。这样主要是为了在发送多个请求时,解决因带宽低而导致响应变慢的问题
- 压缩HTTP首部
- 通信产生的数据包数量和发送的字节数变少
- 推送功能
- 支持服务器主动向客户端推送数据的功能
- 服务器提示功能
- 服务器可以主动提示客户端请求所需的资源
-
SPDY是否消除了Web瓶颈
使用浏览器进行全双工通信的WebSocket
- WebSocket的设计与功能
- 即Web浏览器与Web服务器之间全双工通信标准
- WebSocket协议
- 推送功能
- 支持由服务器向客户端推送数据的推送功能
- 减少通信量
- 只要建立起WebSocket连接,就希望一直保持连接状态
- 推送功能
HTTP/2.0
Web服务器管理文件的WebDA V
- 是一个可对Web服务器上的内容直接进行文件复制、编辑等操作的分布式文件系统
- 扩展HTTP/1.1的WebDA V
- WebDA V内新增的方法及状态码