(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

(chap9 基于HTTP的功能追加协议) WebSocket使用浏览器进行全双工通信

读《图解HTTP》总结--第九章

HTTP用户认证追加协议以及相关技术简单学习

HTTP协议与攻击

HTTP协议安全性浅析