Chinaunix首页 | 论坛 | 博客
  • 博客访问: 4822298
  • 博文数量: 291
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 7924
  • 用 户 组: 普通用户
  • 注册时间: 2016-07-06 14:28
个人简介

阿里巴巴是个快乐的青年

文章分类

全部博文(291)

文章存档

2018年(21)

2017年(4)

2016年(5)

2015年(17)

2014年(68)

2013年(174)

2012年(2)

分类: Web开发

2015-03-06 16:27:58

        现有的HTTP协议存在如下几个问题:
        (1)一个连接一个请求
        从request发出到response回来之间,TCP连接被独占,即所谓的单工方式。
        以浏览器与WEB服务器交互为例,如果页面有多个资源需要加载,那么就会带来延迟。
        (2)HTTP头不能压缩
        只能对body进行压缩,不能对header压缩。
        比如:一个cookie较多的网站,将会对带宽造成很大的浪费。
        (3)冗余的HTTP头部
        HTTP头部字段多,而且在同一通道中重复发送。
        比如:User-Agent、Host等,对于同一页面来说,是相同的,没有必要每次发送都带上。
        (4)只能由客户端发起请求。
        所有的HTTP请求都只能由客户端发起,服务器只能被动回应。

        这些问题在移动场景中尤为严重,不稳定的网络环境使之暴露无遗。
        所幸的是,2012年,Google推出了基于TCP的应用层协议SPDY(取 speedy 谐音,意谓更快)。
        当然,该协议并不是用于取代HTTP,而是对HTTP协议的增强,具体表现在以下几点:
        (1)多路复用
        一个连接允许多个并发request/response,比如:页面上多个资源可以在一起TCP连接中,并行请求得到。
        (2)优先级
        并发请求之间可以设置优先级。
        (3)HTTP头压缩
        压缩HTTP请求头。
        (4)HTTP头标记
        每一个SPDY端点会持续跟踪每一个在之前的请求中已经发送的HTTP报文头部,从而避免重复发送还未改变的头部。
        (5)消息推送
        SPDY的网页服务器还可以主动推送内容。
        目前主流的浏览器(比如:Chrome、Firefox、Opera、IE)和WEB服务器(比如:Apache、Nginx)都支持SPDY。


阅读(3008) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~