第九章 基于HTTP的功能追加协议
9.1 基于HTTP的协议
在建立HTTP标准规范时,制订者主要想把HTTP 当作传输HTML文档的协议。随着时代的发展,Web 的用途更具多样性,比如演化成在线购物网站、SNS(SocialNetworking Service,社交网络服务)、企业或组织内部的各种管理工具,等等
而这些网站所追求的功能可通过 Web应用和脚本程序实现。即使这些功能已经满足需求,在性能上却未必最优,这是因为 HTTP 协议上的限制以及自身性能有限。
HTTP功能上的不足可通过创建一套全新的协议来弥补。可是目前基于HTTP的Web浏览器的使用环境已遍布全球,因此无法完全抛弃HTTP。有一些新协议的规则是基于HTTP的,并在此基础上添加了新的功能
9.2 消除HTTP瓶颈的SPDY
9.2.1 SPDY的设计和功能
SPDY(发音为“speedy”)是一种由Google推出的用于加速网络传输的协议。它的目标是通过减少页面加载时间、提高网络性能和安全性,提供更好的用户体验。SPDY并不是一个完全独立的协议,而是在传输层协议(如HTTPS)之上进行改进。
SPDY 的主要特性和目标包括:
- 多路复用(Multiplexing): SPDY 允许在单个连接上同时传输多个请求和响应,减少了延迟,提高了页面加载速度。这对于支持多个资源的网页非常有用。
- 头部压缩(Header Compression): SPDY 使用头部压缩技术来减小请求和响应头的大小,从而减少了带宽的使用和提高了传输速度。
- 优先级控制(Priority Control): SPDY 允许客户端指定请求的优先级,确保重要资源得到更快的响应,提高页面的加载性能。
- 流控制(Flow Control): SPDY 实现了流控制,允许客户端和服务器之间协商并控制数据流的速率,防止了网络拥塞。
- 服务端推送(Server Push): 服务器可以在客户端请求之前主动推送资源,以提高页面加载速度。这对于提前加载可能会被客户端请求的资源非常有用。
- 安全性: SPDY 在设计上强调了安全性,通常与TLS一起使用,形成了加密的传输通道,从而保护了用户数据的隐私。
9.2.2 SPDY消除Web瓶颈了吗
希望使用SPDY时,Web的内容端不必做什么特别改动,而Web浏览器及Web服务器都要为对应SPDY做出一定程度上的改动。有好几家Web浏览器已经针对SPDY做出了相应的调整。另外,Web服务器也进行了实验性质的应用,但把该技术导入实际的 Web 网站却进展不佳。
因为SPDY基本上只是将单个域名(IP地址)的通信多路复用所以当一个 Web网站上使用多个域名下的资源,改善效果就会受到限制。
SPDY的确是一种可有效消除HTTP瓶颈的技术,但很多Web网站存在的问题并非仅仅是由 HTTP瓶颈所导致。对Web本身的速度提升,还应该从其他可细致钻研的地方人手,比如改善 Web 内容的编写方式等。
9.3 使用浏览器进行全双工通信的WebSocket
9.3.1 概述
WebSocket 是一种在单个 TCP 连接上进行全双工通信的协议,它允许在客户端和服务器之间进行实时的、双向的数据传输。与传统的 HTTP 协议不同,WebSocket 在建立连接后,可以在客户端和服务器之间进行持久性的通信,而不需要频繁地建立和断开连接。
以下是 WebSocket 的一些关键特点和工作原理&#