图解http读书笔记四——基于http的功能追加协议

本文探讨了HTTP协议存在的瓶颈及其解决方案。首先介绍了SPDY如何通过多路复用流、请求优先级、压缩HTTP首部等功能来缩短网页加载时间;接着讨论了WebSocket如何实现全双工通信及其实现过程;最后提到了HTTP/2.0的目标和实现方法,包括SPDY在内的多项技术如何共同作用于提升用户体验。

消除http瓶颈的spdy

spdy缩短web页面的加载时间
http的瓶颈

  • 一条连接只可发送一个请求
  • 请求只可从客户端开始
  • 请求/响应首部未经压缩就发送。首部信息越多,延迟越大
  • 发送冗长的首部,每次互相发送相同的首部浪费
  • 可任意选择压缩格式,非强制压缩

解决方法

  • ajax的解决方法
    ajax(asychronous javascript and xml)异步javascript与xml是一种有效利用javascript和dom的操作,以达到局部web页面替换加载的异步通信手段。
    即只更新一部分页面,传输数据减少。
    但是仍未解决大量请求的问题
  • comet的解决方法
    这里写图片描述

    • spdy的目标
      ajax和comet虽然改善了http,但是协议层面的限制束手无策。为了进行根本性改善,需要协议层面的改动
      spdy在tcp/ip的应用层与传输层之间添加了会话层,控制对数据的流动,但是还是采用http建立通信连接
      这里写图片描述
      使用spdy后,http协议获得一下功能

      • 多路复用流:单一的tcp连接可以无限制处理多个http请求
      • 赋予请求优先级:给请求逐个分配优先级顺序
      • 压缩http首部
      • 推送功能:支持服务器主动向客户端推送数据
      • 服务器提示功能:服务器可主动提示客户端请求所需的资源,避免发送不必要的请求

使用浏览器进行全双工通信的websocket

websocket协议
一旦websocket通信建立,过程中可以互相发送json\xml\html或图片等任意格式数据,由于是建立在http基础上,所以连接发起方仍然是客户端,而一旦建立连接,不论服务器还是客户端,可以直接互相发送报文

特点

  • 推送功能
  • 减少通信量,因为websocket会一直保持连接,而且首部信息少

握手请求
为了实现websocket通信,在http连接建立后,需要完成一次握手

  • 握手——请求
    为了实现websocket通信,需要用到http的upgrade首部字段,告知服务器协议发送变化,以达到握手的目的
  • 握手——响应
    对于之前的请求,返回状态码101 switching protocols的响应
    这里写图片描述

http/2.0

目标是改善用户在使用web时的速度体验。基本都会先通过http/1.1与tcp连接。
实现方法:

  • spdy
  • http speed+mobility:用于改善并提高移动端通信时的速度和性能的标准,建立在spdy和websocket的基础上
  • network-friendly http upgrade :移动端通信时改善http性能

web服务器管理文件的webdav

web-based distributed authoring and versioning,基于万维网的分布式创作和版本控制
是一个客队web服务器上的内容直接进行文件赋值、编辑的分布式文件系统。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值