一:HTTP/1.0 HTTP/1.1 的新协议
1:SPDY
目标:解决 HTTP 的性能瓶颈,缩短 Web 页面的加载时间(50%)。
SPDY 以会话层的形式加入,控制对数据的流动,但还是采用 HTTP建立通信连接。同时,考虑到安全性问题,SPDY 规定通信中在表示层使用 SSL。
特点:
- 多路复用流:通过单一的 TCP 连接,可以无限制处理多个 HTTP 请求。
- 赋予请求优先级:可以给请求逐个分配优先级顺序,解决因带宽低而导致响应变慢的问题。
- 压缩 HTTP 首部:通信产生的数据包数量和发送的字节数就更少了。
- 推送功能:支持服务器主动向客户端推送数据的功能。
- 主动提示功能:服务器可以主动提示客户端请求所需的资源。
2:WebSocket
目标:解决 Ajax 和 Comet里 XMLHttpRequest 附带的缺陷。
WebSocket,即 Web 浏览器与 Web 服务器之间全双工通信标准。
特点:
- 推送功能:支持由服务器向客户端推送数据的推送功能。
- 减少通信量:只要建立起 WebSocket 连接,就希望一直保持连接状态。
握手:
请求:
- 使用Upgrade 首部字段,告知服务器通信协议发生改变,
- Sec-WebSocket-Key 字段内记录着握手过程中必不可少的键值。
- Sec-WebSocket-Protocol 字段内记录使用的子协议。
响应:
- 返回状态码 101 Switching Protocols 的响应。
- Sec-WebSocket-Accept 的字段值是由握手请求中的 Sec-WebSocket-Key 的字段值生成的。
3:WebDAV
它是一个可对 Web 服务器上的内容直接进行文件复制、编辑等操作的分布式文件系统。
特点:
除了创建、删除文件等基本功能,它还具备文件创建者管理、文件编辑过程中禁止其他用户内容覆盖的加锁功能,以及对文件内容修改的版本控制功能。
概念:
- 集合:统一管理多个资源的概念。
- 资源:把文件或集合称为资源。
- 属性:定义资源的属性。定义以“名称 = 值”的格式执行。
- 锁:把文件设置成无法编辑状态。
方法:
- Mkcol: 创建集合。
- PropFind 和 PropPatch:针对资源和集合获取和修改属性。
- Copy 和 Move:复制和移动集合和资源。
- Lock 和 Unlock: 改写保护资源。
状态码
状态码 | 含义 |
---|---|
102 | 可正常处理请求,但目前是处理中状态 |
207 | 存在多种状态 |
422 | 格式正确,内容有误 |
423 | 资源已被加锁 |
424 | 处理与某请求关联的请求失败 |
507 | 保存空间不足 |
二:HTTP/2.0
HTTP Speed + Mobility
由微软公司起草,是用于改善并提高移动端通信时的通信速度和性能的标准。
Network-Friendly HTTP Upgrade
主要是在移动端通信时改善 HTTP 性能的标准。