当前位置:首页 > 技术 >

websocket和http2.0的区别(websocket和socket哪个稳定)

来源:原点资讯(www.yd166.com)时间:2022-10-26 13:29:39作者:YD166手机阅读>>

昨天的文章中提到了HTTP/2,很多同学问HTTP/2是啥,找了这篇文章分享给各位

文章来源:http://www.hollischuang.com/archives/2066

关于HTTP/2,最近你可能没少听到过他。首先,如果你了解过Java 9的特性,那么你会发现在Java9中,提供了新的方式来处理HTTP调用,提供了新的HTTP Client,将替代HttpURLConnection,并提供对WebSocket和HTTP/2的支持。还有前两天刚刚发布的Spring Boot 2.0 的新特性中,也会看到,Spring Boot 2.0支持的Web容器中Tomcat、Undertow和Jetty均已支持HTTP/2。

那么,这篇文章,我们就来了解下,到底什么是HTTP/2。

HTTP

超文本传输协议(英文:HyperText Transfer Protocol,缩写:HTTP)是一种用于分布式、协作式和超媒体信息系统的应用层协议。设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法。通过HTTP或者HTTPS协议请求的资源由统一资源标识符(Uniform Resource Identifiers,URI)来标识。

HTTP 协议是以 ASCII 码传输,基于请求与响应模式的、无状态的,建立在 TCP/IP 协议之上的应用层规范。它不涉及数据包(packet)传输,主要规定了客户端和服务器之间的通信格式,默认使用80端口。

websocket和http2.0的区别,websocket和socket哪个稳定(1)

HTTP协议主要的版本有3个,分别是HTTP/1.0HTTP/1.1HTTP/2。HTTPS是另外一个协议,简单讲是HTTP的安全版。

HTTP/1.0

1996年5月,HTTP/1.0 版本发布,为了提高系统的效率,HTTP/1.0规定浏览器与服务器只保持短暂的连接,浏览器的每次请求都需要与服务器建立一个TCP连接,服务器完成请求处理后立即断开TCP连接,服务器不跟踪每个客户也不记录过去的请求。

请注意上面提到的HTTP/1.0中浏览器与服务器只保持短暂的连接,连接无法复用。也就是说每个TCP连接只能发送一个请求。发送数据完毕,连接就关闭,如果还要请求其他资源,就必须再新建一个连接。

我们知道TCP连接的建立需要三次握手,是很耗费时间的一个过程。所以,HTTP/1.0版本的性能比较差。现在,随便打开一个网页,上面都会有很多图片、视频等资源,HTTP/1.0显然无法满足性能要求。

HTTP/1.1

为了解决HTTP/1.0存在的缺陷,HTTP/1.1于1999年诞生。相比较于HTTP/1.0来说,最主要的改进就是引入了持久连接。所谓的持久连接就是:在一个TCP连接上可以传送多个HTTP请求和响应,减少了建立和关闭连接的消耗和延迟。

websocket和http2.0的区别,websocket和socket哪个稳定(2)

引入了持久连接之后,在性能方面,HTTP协议有了明显的提升,基本可以用于日常使用,这也是这一版本一直延用至今的原因。当然还是有些力不从心的,后面会详细介绍。

关于HTTP/1.0和HTTP/1.1还有些其他区别,这里就不展开介绍了。网上也很多资料,可以自行查阅。

SPDY

虽然,HTTP/1.1在HTTP/1.0的基础上提供了持久连接,提升了很大的效率,但是,还是有很大的提升空间。

正所谓时势造英雄,正是因为HTTP存在着诸多不足,所以,才诞生了SPDY。2009年,谷歌公开了自行研发的 SPDY 协议,主要解决 HTTP/1.1 效率不高的问题。它的设计目标是降低 50% 的页面加载时间。SPDY主要提供了以下功能(后文介绍HTTP2的时候再详细介绍):

  • 多路复用(multiplexing)。多个请求共享一个tcp连接。
  • Header压缩。删除或者压缩HTTP头
  • 服务端推送。提供服务方发起通信,并向客户端推送数据的机制

SPDY位于HTTP之下,TCP和SSL之上,这样可以轻松兼容老版本的HTTP协议。

websocket和http2.0的区别,websocket和socket哪个稳定(3)

实际上在 HTTP2 提出来之前,SPDY 流行了很长一段时间。当下很多著名的互联网公司都在自己的网站或 APP 中采用了 SPDY 系列协议(当前最新版本是 SPDY/3.1),因为它对性能的提升是显而易见的。主流的浏览器(谷歌、火狐、Opera)也都早已经支持 SPDY,它已经成为了工业标准。HTTP Working-Group 最终决定以 SPDY/2 为基础,开发 HTTP/2。

HTTP/2

下图是Akamai 公司建立的一个官方的演示,主要用来说明在性能上HTTP/1.1和HTTP/2在性能升的差别。同时请求 379 张图片,HTTP/1.1加载用时4.54s,HTTP/2加载用时1.47s。

websocket和http2.0的区别,websocket和socket哪个稳定(4)

首页 123下一页

栏目热文

websocket和tcp区别(websocket服务器要多大)

websocket和tcp区别(websocket服务器要多大)

本文引用自“ 豆米博客”的《JS实时通信三把斧》系列文章,有优化和改动。1、引言有关Web端即时通讯技术的文章我已整理过...

2022-10-26 13:04:40查看全文 >>

socket和http优缺点(http和socket区别)

socket和http优缺点(http和socket区别)

一、OSI 网络七层模型第一层:应用层,定义了用于在网络中进行通信和传输数据的接口;(Http协议位于该层)第二层:表示...

2022-10-26 13:44:57查看全文 >>

socket和http区别(websocket和socket区别)

socket和http区别(websocket和socket区别)

一个完整的HTTP请求的过程此举例为抛砖引玉,引导大家进入思考状态。当你按输入www.baidu.com ,浏览器接收到...

2022-10-26 13:01:10查看全文 >>

websocket和socket的区别(websocket缺点有哪些)

websocket和socket的区别(websocket缺点有哪些)

对于物联网(IoT,Internet of Things),最重要的是在互联网中设备与设备的通讯,现在物联网在inter...

2022-10-26 13:28:06查看全文 >>

http和socket通信有什么区别(socket和http哪个响应快)

http和socket通信有什么区别(socket和http哪个响应快)

OSI是一个 开放性 的通信系统互连参考模型,他是一个定义得非常好的协议规范。OSI模型有7层结构每层都可以有几个子层...

2022-10-26 13:04:59查看全文 >>

websocket一般用什么服务器(websocket服务器怎么打开)

websocket一般用什么服务器(websocket服务器怎么打开)

安装nodeJs和配置, 参考nodeJs安装文档,下图问本人本地安装的版本查看版本 npm-v在本地创建存放项目文件夹...

2022-10-26 13:47:10查看全文 >>

websocket和http的区别(websocket登录验证)

websocket和http的区别(websocket登录验证)

一、这一大堆关键词之间到底有啥区别?有名字就有定义,理解的前提从来都是对定义有所了解。就好比现在让你形容一下梯形的定义,...

2022-10-26 13:32:34查看全文 >>

http和socket连接有什么区别(http长连接和socket长连接)

http和socket连接有什么区别(http长连接和socket长连接)

前言:作为一名开发人员我们经常会听到HTTP协议、TCP/IP协议、UDP协议、Socket、Socket长连接、Soc...

2022-10-26 13:21:32查看全文 >>

http和socket有什么关系(http与socket关系)

http和socket有什么关系(http与socket关系)

最近项目中需要自己去实现一个http的接口。所以趁这个机会跟大家讲一下http和socket的关系,以及与TCP又有什么...

2022-10-26 13:37:24查看全文 >>

socket和http协议哪个好(socket和http哪个响应快)

socket和http协议哪个好(socket和http哪个响应快)

我们先来看看HTTP协议 与 TCP协议 的区别TCP协议是传输层协议 ,主要解决数据如何在网络中传输,而HTTP是应用...

2022-10-26 13:05:33查看全文 >>

文档排行