目标是解决http的性能瓶颈,缩短web页面的加载时间web
使用HTTP协议必须从客户端到服务器进行确认,若服务器没有更新就产生徒劳的通讯浏览器
HTTP的瓶颈:缓存
一条链接上只能够发送一个请求服务器
请求只能从客户端开始,客户端不能够接收除响应之外的指令websocket
请求/响应首部未经压缩就发送,首部信息越多延迟越大异步
发送冗长的首部。每次互相发送相同的首部形成的浪费较多socket
可任意选择数据压缩格式。非强制压缩发送分布式
Ajax的解决方法性能
Ajax是一种有效利用js和DOM的操做,以达到局部Web页面替换加载的异步通讯手段。网站
优势:它只更新局部页面,传输的数据量变小
缺点:实时获取内容会产生大量请求
HTTP协议自己的问题还存在
Comet的解决方法
服务器接收请求后,Comet会先将响应挂起。一旦但服务器有更新,当即给客户端响应。
优势:能够作到实时更新
缺点:为了保留响应,一次链接的持续时间变长了,会消耗资源
HTTP协议自己的问题还存在
SPDY在TCP/IP的应用层与传输层之间加入的会话层(SPDY通讯使用SSL)
优势:
(1) 多路复用流:单一的TCP能够处理多个http请求。TCP的处理效率提升。
(2)赋予请求优先级:给请求逐个分配优先级顺序,解决因带宽低致使响应变慢的问题。
(3)压缩HTTP首部:压缩请求和响应的首部。通讯的数据包数量和发送的字节变小。
(4)推送功能:支持服务器主动向客户端推送数据。没必要等待客户端请求。
(5)服务器提示功能:主动提示客户端请求所需的资源。若资源已缓存可避免发送请求。
缺点:
(1)SPDY是将单个IP地址的通讯多路复用,若网站使用多个域名下的资源,改善比较差。
(2)不能改变web自己的速度
WebSocket逐步成为独立的协议标准。
WebSocket只要解决Ajax和Comet里XMLHttpRequest附带的缺陷所引发的问题
一旦web服务器和客户端之间创建起WebSocket协议的通讯链接,(不管客户端仍是服务器均可以直接发送报文)
推送功能:支持服务器向客户端推送数据
减小通讯量:一致保存链接状态,总开销还减小。(缘由,首部信息少)
须要用到HTTP的Upgrade首部字段告诉服务器使用WebSocket通讯。
Sec-WebSockey-Key:记录握手必不可少的键值
Sec-WebSockey-Key:记录使用的子协议
对于以前的请求,返回状态码101 Switching Protocols 的响应
JS可调用 the WebSocket API内提供的WebSocket程序接口,以实现WebSocket协议下全双工通讯,
HTTP/2.0特色:
改善用户使用Web时的速度体验
HTTP2.0性能加强的核心:
二进制分帧
HTTP 2.0最大的特色:
不会改动HTTP 的语义,HTTP 方法、状态码、URI 及首部字段,等等这些核心概念上一如往常,却能致力于突破上一代标准的性能限制,改进传输性能,实现低延迟和高吞吐量
HTTP 2.0是在应用层(HTTP2.0)和传输层(TCP or UDP)之间增长一个二进制分帧层
(1)SPDY
(2)HTTP Speed+Mobility (微软起草,用于改善并提升移动端通讯时的通讯速度和性能的标准,它创建在Google提出的SPDY与WebSocket的基础之上)
(3)NetWork-Friendly HTTP Upgrade (主要在移动端通讯时改善HTTP性能的标准)
(1)HTTP/2使用二进制数据流,HTTP/1.x使用效率较低的文本数据。
(2)HTTP/2支持首部压缩
在请求后,返回的数据包括描述信息:来源,类型,长度,能够缓存的时间等。而且在HTTP/2中进行了压缩。
(3)HTTP/2使用管道Pipelining传输(双向字节流)
在HTTP1.1中服务器必须与接收请求,以相同的顺序进行收发响应。HTTP/2支持异步,能够更快的处理响应。
(4)HTTP/2支持多路复用
在HTTP1.1里,在任什么时候间只能在TCP链接处理一个请求,浏览器同时请求几个链接时,若是是大或慢的资源会致使文件下载延迟。HTTP/2能够容许在同一时间的单个链接发出多个请求和接收多个响应。
(5)HTTP/2支持请求优先级
(6)HTTP/2支持服务器推送
WebDAV:对web服务器的内容直接进行文件复制、编辑、加锁等操做的分布式系统
集合:是一种统一管理多个资源的概念。以集合为单位可进行各类操做。也可实现相似集合的集合这样的叠加。
资源:把文件或集合称为资源
属性:定义资源的属性。定义以“名称=值”的格式执行。
锁:把文件设置成没法编辑状态。多我的同时编辑时,可防止在同一时间进行内容写入。
目的:实现远程文件管理
propfind:获取属性
proppatch:修改属性
mkcol:建立集合
copy:复制资源及属性
move:移动资源
lock:资源加锁
unlock:资源解锁
102 Processing:可正常处理请求,但目前是处理中状态
207 Multi-Status:存在多种状态
422 Unprocessible Entily:格式正确,内容有误
424 Failed Dependency:处理与某请求关联的请求失败,所以再也不维持依赖关系
507 Insufficient Storage:保存空间不足
一、防火墙能够禁止非指定协议和端口
二、web的使用率最高(HTTP的端口80、HTTPS的端口443)
三、http导入简单
四、http服务器、客户端已成规模