HTTP基础知识(九)

 
9、基于HTTP的功能追加协议
 
一、基于HTTP的协议
在创建HTTP标注规范时,制定者主要想把它当作传输HTML文档的协议。现在,web的用途更具多样性,但因为HTTP协议上的限制以及自身性能有限,在性能上却未必最优。因为基于HTTP的web浏览器的使用环境已遍及全球,没法彻底抛弃它,因此一些新协议的规则都是基于HTTP的。
 
二、消除HTTP瓶颈的SPDY
(1)HTTP的瓶颈:
1)一条链接上只可发送一个请求。
2)请求只能从客户端开始。客户端不能够接收除响应之外的指令。
3)请求/响应首部未经压缩就发送。首部信息越多延迟越大。
4)发送冗长的首部。每次互相发送相同的首部形成的浪费较多。
5)可任意选择数据压缩格式。非强制压缩发送。
 
解决方法:
1)Ajax(Asynchronous JavaScript and XML,异步JavaScript与XML技术)
实现局部Web页面替换加载的异步通讯,响应中传输的数据量会所以而减小。
可是利用Ajax有可能会致使大量请求产生,并且仍未解决HTTP协议自己存在的问题。
2)Comet
一般,服务器端接收到请求,在处理完毕后就会当即返回响应,但为了实现推送功能,Comet会先将响应置于挂起状态,当服务器端有内容更新时,再返回该响应。
可是为了保留响应,一次链接的持续时间也变长了,期间,为了维持链接会消耗更多的资源,且也未能解决HTTP协议自己存在的问题。
 
(2)SPDY的设计与功能
SPDY没有彻底改写HTTP协议,而是在TCP/IP的应用层与运输层之间经过新加会话层的形式运做。同时,SPDY规定通讯中使用SSL。
使用SPDY后,HTTP协议额外得到如下功能:
1)多路复用流
经过单一的TCP链接,能够无限制处理多个HTTP请求。全部的请求的处理都在一条TCP链接上完成,所以TCP的处理效率获得调高。
2)赋予请求优先级
SPDY不只能够无限制地并发处理骑牛群,还能够给请求逐个分配优先级顺序。这样主要是为了在发送多个请求时,解决因带宽低而致使响应变慢的问题。
3)压缩HTTP首部
压缩HTTP请求和响应的首部可以使通讯产生的数据包数量和发送的字节数更少。
4)推送功能
支持服务器主动向客户端推送数据的功能。这样,服务器可直接发送数据,而没必要等待客户端的请求。
5)服务器提醒功能
服务器能够主动提示客户端请求所需的资源。因为在客户端发现资源以前就能够获知资源的存在,所以在资源已缓存等状况下,能够避免发送没必要要的请求。
 
SPDY基本上只是将单个域名(IP地址)的通讯多路复用,因此当一个web网站上使用多个域名下的资源,改善效果就会收到限制。
 
三、使用浏览器进行全双工通讯的WebSocket
(1)WebSocket协议
一旦web服务器与客户端之间创建起WebSocket协议的通讯链接,以后全部的通讯都依靠这个专用协议进行。通讯过程当中可互相发送JSON、XML、HTML或图片等任意格式的数据。
WebSocket特色:
1)推送功能
支持由服务器向客户端推送数据的推送功能。服务器可直接发送数据,而没必要等待客户端的请求。
2)减小通讯量
和HTTP相比,不但每次链接时的总开销减小,并且因为WebSocket的首部信息很小,通讯量也相应减小了。
 
(2)WebSocket要求
为了实现WebSocket通讯,请求时须要用到HTTP的Upgrade首部字段,告知服务器通讯协议发生改变,以达到握手的目的。
Upgrade : websocket
对上面的请求,服务器返回状态码101 Switching Protocols的响应。
通讯时再也不使用HTTP的数据帧,而采用WebSocket独立的数据帧。
 
四、期盼已久的HTTP/2.0
(1)HTTP/2.0的特色
HTTP/2.0的目标是改善用户在使用web时的速度体验。
1)二进制
HTTP/2.0是一个二进制协议,可使成帧的使用变得更为便捷。
2)多路复用的流
每一个单独的HTTP/2.0链接均可以包含多个并发的流,这些流中交错的包含着两端的帧。流既能够呗客户端/服务器端单方面的创建和使用,也能够被双方共享,或者被任意一边关闭。
3)优先级和依赖性
每一个流都包含一个优先级,它被用来告诉对端哪一个流更重要。当资源有限的时候,服务器会根据优先级来选择应该先发送哪些流。
4)头压缩
这是一个专为HTTP/2.0头部设计的压缩格式。使信息量的损失尽量少,使编码快速而方便,使接收方能控制压缩文本的大小。
5)重置
在HTTP/1.1时,当一个含有确切值得Content-Length的HTTP消息被送出以后,就很难中断了。而在HTTP/2.0中咱们能够发送RST_STREAM帧来实现只终止当前传输的消息并从新发送一个新的,从而避免浪费宽带和中断已有的链接。
6)服务器推送
这个功能一般被称做“缓存推送”。服务器会在客户端发送请求前主动将其可能须要的资源推送过去,以备未来之需。
7)流量控制
HTTP/2.0上面每一个流都拥有本身的公示的流量窗口,它能够限制另外一端发送数据。
 
五、web服务器管理文件的WebDAV
(1)WebDAV(Web-based Distributed Authoring and Versioning,基于万维网的分布式创做和版本控制):是一个可对wev服务器上的内容直接进行文件复制、编辑等操做的分布式文件系统。
除了建立、删除文件等基本功能,它还具有文件建立者管理、文件编辑过程当中禁止其余用户内容覆盖的加锁功能,以及对文件内容修改的版本控制功能。
(2)扩展HTTP/1.1的WebDAV
WebDAV新增长了一些概念:
集合:是一种赞成管理多个资源的概念。以集合为单位可进行各类操做。也可实现相似集合的集合这样的叠加。
资源:把文件或集合成为资源。
属性:定义资源的属性。定义以“名称=值”的格式执行。
锁:把文件设置成没法编辑状态。多人同时编辑时,可防止在同一时间进行内容写入。
(3)WebDAV内新增的方法及状态码
 
方法:
PROPFIND:获取属性
PROPPATCH:修改属性
MKCOL:建立集合
COPY:复制资源及属性
MOVE:移动资源
LOCK:资源加锁
UNLOCK:资源解锁
 
状态码:
102 Processing:可正常处理请求,但目前是处理中状态。
207 Multi-Status:存在多种状态
422 Unprocessible Entity:格式正确,内容有误
423 Locked:资源已被加锁
424 Insufficient Storage:保存空间不足
相关文章
相关标签/搜索