SPDY初探

原文链接:http://blog.chinaunix.net/uid-22312037-id-4865410.html

现有的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。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏生信技能树

github极简指南

入生信的坑已经3年多了,但开始github的旅程才一年多,起初主要是为了建立bioconductor中文社区而学习的,现在也在自己的github上面分享了不少代...

38840
来自专栏xingoo, 一个梦想做发明家的程序员

《linux c编程指南》学习手记3

6.3.1 多个进程之间的关系 进程组:getpgrp(void)用来返回进程组号 setpgid用来创建一个新的进程组或将一个进程加入另一个已存在的进程组 6...

19680
来自专栏懒人开发

ZooKeeper入门

我们知道,著名的hadoop,kafka,dubbo 都是基于zookeeper而构建。

37520
来自专栏编程坑太多

『中级篇』docker的数据持久化存储和数据共享(32)

PS:源码https://github.com/limingios/docker No.3 方便学习数据持久化存储

23640
来自专栏C/C++基础

google C++编程风格指南之头文件的包含顺序

(1)为了加强可读性和避免隐含依赖,应使用下面的顺序:C标准库、C++标准库、其它库的头文件、你自己工程的头文件。不过这里最先包含的是首选的头文件,即例如a.c...

11910
来自专栏吴伟祥

Linux系统基本结构 原

/dev/fdx         主设备号 fd 是软盘驱动器(floppydisk) 的缩写,次设备号x 是软盘驱动器相应的编号。

12320
来自专栏Web 开发

推荐两款HTTP Log分析利器

一款是Apache Logs Viewer,这是一款PC端日志分析软件,从服务器上面把log日志下载回来跑的。

7900
来自专栏JetpropelledSnake

Python Web学习笔记之Python多线程和多进程、协程入门

进程和线程究竟是什么?如何使用进程和线程?什么场景下需要使用进程和线程?协程又是什么?协程和线程的关系和区别有哪些? 程序切换-CPU时间的分配 首先,我们的任...

40050
来自专栏coder修行路

一次python 内存泄漏解决过程

最近工作中慢慢开始用python协程相关的东西,所以用到了一些相关模块,如aiohttp, aiomysql, aioredis等,用的过程中也碰到的很多问题,...

35420
来自专栏LEo的网络日志

shell相关分享

29750

扫码关注云+社区

领取腾讯云代金券