CP/IP,SPDY,WebSocket 三者之间的关系

按照OSI网络分层模型,IP是网络层协议,TCP是传输层协议,而HTTP是应用层的协议。在这三者之间,SPDY和WebSocket都是与HTTP相关的协议,而TCP是HTTP底层的协议。一、HTTP的不足

HTTP协议经过多年的使用,发现了一些不足,主要是性能方面的,包括:HTTP的连接问题,HTTP客户端和服务器之间的交互是采用请求/应答模式,在客户端请求时,会建立一个HTTP连接,然后发送请求消息,服务端给出应答消息,然后连接就关闭了。(后来的HTTP1.1支持持久连接)因为TCP连接的建立过程是有开销的,如果使用了SSL/TLS开销就更大。在浏览器里,一个网页包含许多资源,包括HTMLCSS,JavaScript,图片等等,这样在加载一个网页时要同时打开连接到同一服务器的多个连接。HTTP消息头问题,现在的客户端会发送大量的HTTP消息头,由于一个网页可能需要50-100个请求,就会有相当大的消息头的数据量。HTTP通信方式问题,HTTP的请求/应答方式的会话都是客户端发起的,缺乏服务器通知客户端的机制,在需要通知的场景,如聊天室,游戏,客户端应用需要不断地轮询服务器。

而SPDY和WebSocket是从不同的角度来解决这些不足中的一部分。除了这两个技术,还有其他技术也在针对这些不足提出改进。二、SPDY

SPDY的主要目的是减少50%以上的页面加载时间,但是呢不增加部署的复杂性,不影响客户端和服务端的Web应用,只需要浏览器和Web服务器支持SPDY。主要有以下几点:多路复用,一个TCP连接上同时跑多个HTTP请求。请求可设定优先级。去除不需要的HTTP头,压缩HTTP头,以减少需要的网络带宽。使用了SSL作为传输协议提供数据安全。对传输的数据使用gzip进行压缩提供服务方发起通信,并向客户端推送数据的机制。实质上,SPDY就是想不影响HTTP语义的情况下,替换HTTP底层传输的协议来加快页面加载时间。SPDY的解决办法就是设计了一个会话层协议--帧协议,解决多路复用,优先级等问题,然后在其上实现了HTTP的语义。

三、WebSocket

WebSocket则提供使用一个TCP连接进行双向通讯的机制,包括网络协议和API,以取代网页和服务器采用HTTP轮询进行双向通讯的机制。本质上来说,WebSocket是不限于HTTP协议的,但是由于现存大量的HTTP基础设施,代理,过滤,身份认证等等,WebSocket借用HTTP和HTTPS的端口。

由于使用HTTP的端口,因此TCP连接建立后的握手消息是基于HTTP的,由服务器判断这是一个HTTP协议,还是WebSocket协议。 WebSocket连接除了建立和关闭时的握手,数据传输和HTTP没丁点关系了。

WebSocket也有自己一套帧协议。

四、SPDY和WebSocket的关系

SPDY和WebSocket的关系比较复杂。补充关系,二者侧重点不同。SPDY更侧重于给Web页面的加载提速,而WebSocket更强调为Web应用提供一种双向的通讯机制以及API。竞争关系,二者解决的问题有交集,比如在服务器推送上SPDY和WebSocket都提供了方案。承载关系,试想,如果SPDY的标准化早于WebSocket,WebSocket完全可以侧重于API,利用SPDY的帧机制和多路复用机制实现该API。 Google提出草案,说WebSocket可以跑在SPDY之上。WebSocket的连接建立在SPDY的流之上,将WebSocket的帧映射到SPDY的帧上。融合关系,如微软在HTTP Speed+Mobility中所做的。
时间: 2024-08-07 21:27:29

CP/IP,SPDY,WebSocket 三者之间的关系的相关文章

甲方、乙方、监理三者之间的关系及其在项目管理过程中的若干事项

1.甲方.乙方.监理三者之间的关系 甲方是工程项目的投资单位和受方单位,乙方是工程项目的承建单位和供方单位,监理是工程项目的监管单位和第三方单位.广义方面来讲,监理也属于乙方的范畴,是服务的提供者.从合同角度来讲,甲方与监理.甲方与乙方存在合同关系. 甲方与监理的合同关系:甲方根据合同委托和授权监理就工程项目的质量控制.进度控制.投资控制.信息管理.合同管理.安全管理.组织协调工作进行监理,监理在工程项目建设期间完成合同约定的上述工作内容. 甲方与乙方的合同关系:甲方根据合同委托和要求乙方就工程

电脑结构和CPU、内存、硬盘三者之间的关系

前面提到了,电脑之父——冯·诺伊曼提出了计算机的五大部件:输入设备.输出设备.存储器.运算器和控制器. 我们看一下现在我们电脑的: 键盘鼠标.显示器.机箱.音响等等. 这里显示器为比较老的CRT显示器,现在一般都成功了液晶显示器. 我们想一下,我们在玩电脑的时候,我们使用键盘鼠标来操作电脑,我们在和其他人QQ聊天的时候,鼠标可以帮我们选中聊天的人,打开聊天窗口,键盘则是负责打字,帮我们输入聊天的内容. 我们在操作键盘鼠标的时候,其实都是在告诉电脑来做什么的.我们管键盘和鼠标叫输入设备. 输入设备

求解?表空间,表,用户这三者之间的 关系与区别?

发表于: 2012-02-11 16:40:58 小弟初学oracle,但是在表空间,用户,表这三者之间的关系,有点模糊,希望大牛指导下! 更多0分享到:       对我有用[0] 丢个板砖[0] 引用 | 举报| 管理 回复次数:21 关注 dengnanyi 一棵老松树 本版等级: #1 得分:0回复于: 2012-02-11 16:55:59 表空间:一个数据库划分为一个或多个逻辑单位,该逻辑单位称为表空间(TABLESPACE).一个表空间可将相关的逻辑结构组合在一起.表:表(tabl

Window系统、主函数和窗体函数这三者之间的关系

理解Window系统.主窗体.窗体函数这三者之间的关系,对于编写Windows程序十分重要. 主函数和窗体函数都是由Windows系统来调用的函数.仅仅只是主函数是程序启动之后.系统首先调用的函数: 而窗体函数是主函数在获得消息并把消息发给系统之后,由操作系统调用的函数. 不同的消息所相应的操作就是由窗体函数完毕的,Windows程序猿的工作就是编写窗体函数的case中的代码. Windows系统.主函数.窗体函数这三者之间的关系,例如以下图所看到的:

Window系统、主函数和窗口函数这三者之间的关系

理解Window系统.主窗口.窗口函数这三者之间的关系,对于编写Windows程序十分重要. 主函数和窗口函数都是由Windows系统来调用的函数,只不过主函数是程序启动之后,系统首先调用的函数: 而窗口函数是主函数在获得消息并把消息发给系统之后,由操作系统调用的函数. 不同的消息所对应的操作就是由窗口函数完成的,Windows程序员的工作就是编写窗口函数的case中的代码. Windows系统.主函数.窗口函数这三者之间的关系,如下图所示: Window系统.主函数和窗口函数这三者之间的关系

计算机组成和CPU、内存、硬盘三者之间的关系

电脑之父--冯·诺伊曼 提出了组成计算机的五大部件:输入设备.输出设备.存储器.运算器和控制器. 来看一下现在我们电脑的:键盘鼠标.显示器.机箱.音响等等. 这里显示器为比较老的CRT显示器,现在一般都成功了液晶显示器. 回想一下,在玩电脑的时候,我们使用键盘鼠标来操作电脑,在和其他人QQ聊天的时候,鼠标可以帮我们选中聊天的人,打开聊天窗口,键盘则是负责打字,帮我们输入聊天的内容. 在操作键盘鼠标的时候,其实都是在告诉电脑来做什么的.我们管键盘和鼠标叫输入设备. 输入设备: 向电脑输入数据和信息

IP/PV/UV的定义以及三者之间的关系

第一.IP.PV和UV分别是什么意思? IP,实际上也就是指独立IP,它的英文为Internet ***otocol,是独立IP数的意思.00:00—24:00相同IP地址记录一次.即使你有多台电脑,但是如果IP地址是一样的,那么也只能算是一个IP的访问,IP数据依然为1. PV,也就是指访问量,它的英文是Page View,具体是指网站的是页面浏览量或者点击量,页面被刷新一次就计算一次.如果网站被刷新了1000次,那么流量统计工具显示的PV就是1000 . UV,它是独立访客的意思,英文为Un

正确理解 AsyncTask,Looper,Handler三者之间的关系(基于android 4.0)

Looper 和Handler 是理解好AsyncTask的一个基础,我们可以先从这里开始,先给出一个主线程和子线程互相通信的例子. 1 package com.example.loopertest; 2 3 import android.app.Activity; 4 import android.os.Bundle; 5 import android.os.Handler; 6 import android.os.Looper; 7 import android.os.Message; 8

spring data jpa hibernate jpa 三者之间的关系

JPA规范与ORM框架之间的关系是怎样的呢? JPA规范本质上就是一种ORM规范,注意不是ORM框架——因为JPA并未提供ORM实现,它只是制订了一些规范,提供了一些编程的API接口,但具体实现则由服务厂商来提供实现,JBoss应用服务器底层就以Hibernate作为JPA的实现. 既然JPA作为一种规范——也就说JPA规范中提供的只是一些接口,显然接口不能直接拿来使用.虽然应用程序可以面向接口编程,但JPA底层一定需要某种JPA实现,否则JPA依然无法使用.从笔者的视角来看,Sun之所以提出J