当前位置:首页 > 技术 >

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

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

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

一、这一大堆关键词之间到底有啥区别?

有名字就有定义,理解的前提从来都是对定义有所了解。就好比现在让你形容一下梯形的定义,如果你不知道定义,你就可能把平行四边形当做特殊的梯形处理,也就有可能把TCP和Socket搞混,更加会纠结TCP连接与Socket连接以及HTTP的长/短连接之间到底有啥区别。

其实有了区别才好理解。但在这之前首先得理清一个概念,那就是OSI七层模型,以及所谓的五层模型,四层模型到底是什么鬼?

OSI七层模型是万能的国际标准化组织(ISO)提出的一个试图使各种计算机在世界范围内互连的理想标准,说白了理想和现实的差距就是七层模型和五层模型的差距。具体分类如下表:

七层模型

五层模型

四层模型

应用层

表示层

应用层

应用层

会话层

传输层

传输层

传输层

网络层

网络层

网络层

数据链路层

数据链路层

链接层/实体层

物理层

物理层

七层模型的上三层归为应用层即为TCP/IP五层模型,五层模型的下两层归为链接层或者说实体层即为四层模型。
也就是说,所谓的五层或者四层,其实可以认为是方便理解而形成的潜规则,而具体的实施肯定还是得根据七层的标准来。毕竟每一层都有每一层各自的功能,而为了完成每一层的功能,就需要大家遵守相关的规则,也就是协议。所以,对模型分层没必要太在意,五层也好,四层也罢,对于这些看不见摸不着的东西,你只要知道,互联网是分层的,来来去去加起来也就这么几层就够了。

那么,回到第一个问题,这一大堆关键词之间到底有啥区别?

  • 从本质上来区分,HTTP,WebSocket,TCP,UDP,IP都是协议,而TCP/IP是不同协议的组合,你也可以称之为协议栈,协议族,TCP/IP模型等等都可以,你开心就行,反正都是虚无的不能吃的东西,都是为了完成对应功能而制定的统一规则。
    而Socket(套接字)才是真正能操作的东西。Socket的本质是API,是先人对TCP/IP协议族的抽象或者说封装,它就像一个门面,给你一个操作TCP/IP协议的入口,来建立Socket连接。值得一提的是,此Socket是指网络编程下的Socket,而不是Unix中的Socket。虽然概念相似,但是Unix中的Socket不是基于这些乱七八糟的协议,而是基于操作系统本身的文件系统。
  • 从分层上来区分,HTTP,WebSocket是应用层协议,TCP,UDP是传输层协议,IP是网络层协议。
二、这些关键词之间具体有什么联系?1.TCP和UDP

TCP是面向连接的一种传输控制协议。TCP连接之后,客户端和服务器可以互相发送和接收消息,在客户端或者服务器没有主动断开之前,连接一直存在,故称为长连接。特点:连接有耗时,传输数据无大小限制,准确可靠,先发先至。
UDP是无连接的用户数据报协议,所谓的无连接就是在传输数据之前不需要交换信息,没有握手建立连接的过程,只需要直接将对应的数据发送到指定的地址和端口就行。故UDP的特点是不稳定,速度快,可广播,一般数据包限定64KB之内,先发未必先至。

2.HTTP

HTTP是基于TCP协议的应用,请求时需建立TCP连接,而且请求包中需要包含请求方法,URI,协议版本等信息,请求结束后断开连接,完成一次请求/响应操作。故称为短连接。
而HTTP/1.1中的keep-alive所保持的长连接则是为了优化每次HTTP请求中TCP连接三次握手的麻烦和资源开销,只建立一次TCP连接,多次的在这个通道上完成请求/响应操作。
值得一提的是,服务器无法主动给客户端推送消息。

3.WebSocket

WebSocket也是一种协议,并且也是基于TCP协议的。具体流程是WebSocket通过HTTP先发送一个标记了 Upgrade 的请求,服务端解析后开始建立TCP连接,省去了HTTP长连接每次请求都要上传header的冗余,可以理解为WebSocket是HTTP的优化,但WebSocket不仅仅在Web应用程序上得到支持。

4.Socket连接和TCP连接

其实这就是一个文字游戏而已,建立Socket连接需要至少一对Socket(套接字),而创建Socket连接可以指定不同的传输层协议,即TCP或UDP,所以当采用TCP建立连接时,该Socket连接就视为一个TCP连接。而采用UDP则是无连接的。

5.Socket和WebSocket

这两个虽然名字差不多,但却是两个完全不同的概念,就好比Java和JavaScript一样毫无关系。Socket是一套协议封装后的接口,用于建立Socket连接,而WebSocket虽然是Html5的产物,但也不仅仅局限于浏览器的应用程序,许多语言都提供了WebSocket的支持,比如C,C ,Python等。

6.HTTP、WebSocket与TCP的关系

HTTP通信过程属于“你推一下,我走一下”的方式,客户端不发请求则服务器永远无法发送数据给客户端,而WebSocket则在进行第一次HTTP请求之后,其他全部采用TCP通道进行双向通讯。所以,HTTP和WebSocket虽都是基于TCP协议,但是两者属于完全不同的两种通讯方式。



来源:简书 作者:糖加一勺丶

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

栏目热文

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

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

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

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

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

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

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

2022-10-26 13:29:39查看全文 >>

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查看全文 >>

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查看全文 >>

socket接口和http接口区别(http和socket如何抉择)

socket接口和http接口区别(http和socket如何抉择)

IP:网络层协议;TCP和UDP:传输层协议;HTTP:应用层协议;Socket:TCP/IP网络的API。TCP/IP...

2022-10-26 13:22:56查看全文 >>

小米11好用系统版本(小米11哪个系统版本合适)

小米11好用系统版本(小米11哪个系统版本合适)

2022年1月2日20点小米官方直接在小米11推送MIUI13稳定版,你的小米手机推送了吗?欢迎评论区发表留言本次更新不...

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

文档排行