(chap9 基于HTTP的功能追加协议) HTTP瓶颈
Posted thefist11
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了(chap9 基于HTTP的功能追加协议) HTTP瓶颈相关的知识,希望对你有一定的参考价值。
1. HTTP瓶颈
场景:对于实时更新的网站业务,HTTP的某些标准会成为瓶颈。比如某个网页上有很多的内容需要及时更新,并反馈在客户端的界面上 。
瓶颈一:一条连接上只可发送一个请求
瓶颈二:请求只能从客户端开始,客户端不可以接收除响应以外的指令
瓶颈三:请求/响应首部未经压缩就发送,信息越多延迟越大
瓶颈四:发送冗长的首部,相同首部会浪费
瓶颈五:可任意选择数据压缩格式。非强制压缩发送
2. 解决方法
2.1 Ajax(Asynchronous javascript and XML,异步JavaScript与XML技术)
是一种有效利用JavaScript和DOM(Document Object Model,文档对象模型)的操作,以达到局部Web页面替换加载的异步通信手段。由于它只更新一部分页面,响应中传输的数据量会因此而减少,这一优点显而易见。
Ajax核心技术:XMLHttpRequest的API,通过JS脚本语言的调用就能和服务器进行HTTP通信。实现局部更新页面。
问题:利用Ajax实时地从服务器获取内容,有可能会导致大量请求产生。也未解决HTTP协议本身存在的问题。(每次发送相同的首部,有时不压缩数据直接发送)
2.2 Comet的解决方法
Comet会先将响应置于挂起状态,当服务器端有内容更新时,再返回该响应。因此服务器端一旦有更新,就可以立即反馈给客户端。
这是一种通过延迟应答,模拟实现服务器端向客户端推送的功能。
Comet会先将响应置于挂起状态,当服务器端有内容更新时,再返回该响应。
消耗更多资源,也未解决HTTP本身存在的问题。
问题:内容上虽然可以做到实时更新,但为了保留响应,一次连接的持续时间也变长了。期间,为了维持连接会消耗更多的资源。另外,Comet也仍未解决HTTP协议本身存在的问题。
2.3 SPDY协议的解决方法
在TCP/IP的应用层与运输层之间通过新加会话层的形式运作,考虑到安全性问题,SPDY规定通信中使用SSL。
使用 SPDY 后,HTTP 协议额外获得以下功能。
-
多路复用流
一个TCP可处理多个HTTP请求 -
赋予请求优先级
可以给请求逐个分配优先级顺序,这样主要是为了在发送多个请求时,解决因带宽低而导致响应变慢的问题。 -
压缩HTTP首部
这样通信产生的数据包数量和发送的字节数就更少了。 -
推送功能
支持服务器主动向客户端推送数据的功能。 -
服务器提示功能
服务器可以主动提示客户端请求所需的资源,由于在客户端发现资源之前就可以获知资源的存在,因此在资源已缓存等情况下,可以避免发送不必要的请求。
问题: 因为SPDY基本上只是将单个域名(IP地址)的通信多路复用,所以当一个Web 网站上使用多个域名下的资源,改善效果就会受到限制。
2.4
很多 Web 网站存在的问题并非仅仅是由HTTP瓶颈所导致。对Web本身的速度提升,还应该从其他可细致钻研的地方入手,比如改善Web内容的编写方式等。
以上是关于(chap9 基于HTTP的功能追加协议) HTTP瓶颈的主要内容,如果未能解决你的问题,请参考以下文章
(chap9 基于HTTP的功能追加协议) Web 服务器管理文件的 WebDAV