(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的功能追加协议) 期盼已久的http 2.0
1. HTTP/2.0 定义 改善用户使用Web时的速度 HTTP2.0性能增强的核心 HTTP 2.0是在应用层(HTTP2.0)和传输层(TCP or UDP)之间增加一个二进制分帧层 2. HT ...
- (chap9 基于HTTP的功能追加协议) Web 服务器管理文件的 WebDAV
WebDAV(Web-based Distributed Authoring and Versioning)基于万维网的分布式创作和版本控制 1. 定义 一个可对 Web 服务器上的内容直接进行文件复 ...
- (chap9 基于HTTP的功能追加协议) WebSocket使用浏览器进行全双工通信
1. 概念 利用Ajax和 Comet技术进行通信可以提升Web 的浏览速度.但问题在于通信若使用HTTP协议,就无法彻底解决瓶颈问题.WebSocket网络技术正是为解决这些问题而实现的一套新协议及 ...
- 《图解Http》8: 用户身份认证Cookie管理session; 9:HTTP的追加协议(websoket, webDAV)...
基本认证,(安全等级低,多数网站不使用) Digest认证:(也不怎么用) SSL客户端认证:(凭借客户端证书认证,如网银登陆) 表单认证:用户名/密码.(常用) SSL客户端认证采用two-fact ...
- 从入门到入土:基于C语言采用TCP协议实现通信功能的程序(仅有代码)
此博客仅用于记录个人学习进度,学识浅薄,若有错误观点欢迎评论区指出.欢迎各位前来交流.(部分材料来源网络,若有侵权,立即删除) 本人博客所有文章纯属学习之用,不涉及商业利益.不合适引用,自当删除! 若 ...
- 从入门到入土:基于C语言采用UDP协议实现通信功能的程序
此博客仅用于记录个人学习进度,学识浅薄,若有错误观点欢迎评论区指出.欢迎各位前来交流.(部分材料来源网络,若有侵权,立即删除) 本人博客所有文章纯属学习之用,不涉及商业利益.不合适引用,自当删除! 若 ...
- 基于局域网的扩展认证协议EAPOL Extensible Authentication Protocol
EAP是Extensible Authentication Protocol的缩写. EAP是一个普遍使用的认证机制,它常被用于无线网络或点到点的连接中.EAP不仅可以用于无线局域网,而且可以用于有线 ...
- 基于C#的TCP/IP协议应用(一)
一.背景与概念 1.标准以太网 以太网是美国Xerox(施乐)公司的Palo Alto研究中心于1975年研制成功的,其核心技术起源于ALOHA网.目前以太网是指符合IEEE 802.3标准的局域网( ...
- java android长连接_基于Java Socket的自定义协议,实现Android与服务器的长连接(一)...
一.基础知识准备 在正式给大家介绍自定义协议之前,我们先对网络传输和协议解析的相关知识点做一个基本的介绍,尽管这些知识点我们在学校里学过,但难免会有所遗忘,这里先做一个简单的介绍,以便对后文的内容理解 ...
最新文章
- 改革以来计算机应用发展总结,计算机应用专业课程改革总结.doc
- 基于消息的分布式架构设计
- 基于MFC的socket编程(异步非阻塞通信)
- 前端学习(2853):简单秒杀系统学习之页面事件
- linux 安装 maven 、解决:bash: mvn: command not found
- Flowable工作流总结_工作规范流程设计思路
- JavaScript重难点解析4(作用域与作用域链、闭包详解)
- Python3爬虫入门之pyquery库的使用
- oracle表访问方式
- Sonar问题及解决方案汇总
- 蒜头君的生日(日期格式)
- 能领拼多多优惠券的app
- JZOJ1728. Antimonotonicity
- 敏捷 2016:行业分析研讨会
- SuperMap iClient3D for WebGL之BIM模型爆炸
- QGis二次开发:预览几何图形,QgsRubberBand的应用
- SSM框架中实现地图查询及ECharts直方图功能
- 开放耳机有什么优缺点,推荐几款不错的开放式耳机
- SQL-SQL函数(二)Scalar 函数
- Linux常用指令学习(篇一):文件处理指令
热门文章
- 后台开发技术(1)--概述
- Linux下一些实用的操作记录
- 恢复mysql数据库详细图解_binlog恢复mysql数据库超详细步骤
- linux中 pwd *****,linux命令自己写--pwd
- 计算机组成原理怎么考察的,计算机组成原理课程考察报告(论文).doc
- linux mkfs.ext3 参数,linux命令mkfs.ext3用法[阮胜昌]
- 做弱电机房工程的时候,如何解决机房称重问题?
- 数据中心太废电?为省电费阿里和微软是这么做的....
- 配电房来了个傻员工,改变了所有聪明的员工!
- 国外机房供电模式不如国内的?对比一下就知道了