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瓶颈相关推荐

  1. (chap9 基于HTTP的功能追加协议) 期盼已久的http 2.0

    1. HTTP/2.0 定义 改善用户使用Web时的速度 HTTP2.0性能增强的核心 HTTP 2.0是在应用层(HTTP2.0)和传输层(TCP or UDP)之间增加一个二进制分帧层 2. HT ...

  2. (chap9 基于HTTP的功能追加协议) Web 服务器管理文件的 WebDAV

    WebDAV(Web-based Distributed Authoring and Versioning)基于万维网的分布式创作和版本控制 1. 定义 一个可对 Web 服务器上的内容直接进行文件复 ...

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

    1. 概念 利用Ajax和 Comet技术进行通信可以提升Web 的浏览速度.但问题在于通信若使用HTTP协议,就无法彻底解决瓶颈问题.WebSocket网络技术正是为解决这些问题而实现的一套新协议及 ...

  4. 《图解Http》8: 用户身份认证Cookie管理session; 9:HTTP的追加协议(websoket, webDAV)...

    基本认证,(安全等级低,多数网站不使用) Digest认证:(也不怎么用) SSL客户端认证:(凭借客户端证书认证,如网银登陆) 表单认证:用户名/密码.(常用) SSL客户端认证采用two-fact ...

  5. 从入门到入土:基于C语言采用TCP协议实现通信功能的程序(仅有代码)

    此博客仅用于记录个人学习进度,学识浅薄,若有错误观点欢迎评论区指出.欢迎各位前来交流.(部分材料来源网络,若有侵权,立即删除) 本人博客所有文章纯属学习之用,不涉及商业利益.不合适引用,自当删除! 若 ...

  6. 从入门到入土:基于C语言采用UDP协议实现通信功能的程序

    此博客仅用于记录个人学习进度,学识浅薄,若有错误观点欢迎评论区指出.欢迎各位前来交流.(部分材料来源网络,若有侵权,立即删除) 本人博客所有文章纯属学习之用,不涉及商业利益.不合适引用,自当删除! 若 ...

  7. 基于局域网的扩展认证协议EAPOL Extensible Authentication Protocol

    EAP是Extensible Authentication Protocol的缩写. EAP是一个普遍使用的认证机制,它常被用于无线网络或点到点的连接中.EAP不仅可以用于无线局域网,而且可以用于有线 ...

  8. 基于C#的TCP/IP协议应用(一)

    一.背景与概念 1.标准以太网 以太网是美国Xerox(施乐)公司的Palo Alto研究中心于1975年研制成功的,其核心技术起源于ALOHA网.目前以太网是指符合IEEE 802.3标准的局域网( ...

  9. java android长连接_基于Java Socket的自定义协议,实现Android与服务器的长连接(一)...

    一.基础知识准备 在正式给大家介绍自定义协议之前,我们先对网络传输和协议解析的相关知识点做一个基本的介绍,尽管这些知识点我们在学校里学过,但难免会有所遗忘,这里先做一个简单的介绍,以便对后文的内容理解 ...

最新文章

  1. 改革以来计算机应用发展总结,计算机应用专业课程改革总结.doc
  2. 基于消息的分布式架构设计
  3. 基于MFC的socket编程(异步非阻塞通信)
  4. 前端学习(2853):简单秒杀系统学习之页面事件
  5. linux 安装 maven 、解决:bash: mvn: command not found
  6. Flowable工作流总结_工作规范流程设计思路
  7. JavaScript重难点解析4(作用域与作用域链、闭包详解)
  8. Python3爬虫入门之pyquery库的使用
  9. oracle表访问方式
  10. Sonar问题及解决方案汇总
  11. 蒜头君的生日(日期格式)
  12. 能领拼多多优惠券的app
  13. JZOJ1728. Antimonotonicity
  14. 敏捷 2016:行业分析研讨会
  15. SuperMap iClient3D for WebGL之BIM模型爆炸
  16. QGis二次开发:预览几何图形,QgsRubberBand的应用
  17. SSM框架中实现地图查询及ECharts直方图功能
  18. 开放耳机有什么优缺点,推荐几款不错的开放式耳机
  19. SQL-SQL函数(二)Scalar 函数
  20. Linux常用指令学习(篇一):文件处理指令

热门文章

  1. 后台开发技术(1)--概述
  2. Linux下一些实用的操作记录
  3. 恢复mysql数据库详细图解_binlog恢复mysql数据库超详细步骤
  4. linux中 pwd *****,linux命令自己写--pwd
  5. 计算机组成原理怎么考察的,计算机组成原理课程考察报告(论文).doc
  6. linux mkfs.ext3 参数,linux命令mkfs.ext3用法[阮胜昌]
  7. 做弱电机房工程的时候,如何解决机房称重问题?
  8. 数据中心太废电?为省电费阿里和微软是这么做的....
  9. 配电房来了个傻员工,改变了所有聪明的员工!
  10. 国外机房供电模式不如国内的?对比一下就知道了