首页 > 其他分享 >WebSocket protocol

WebSocket protocol

时间:2022-09-23 00:56:07浏览次数:53  
标签:WebSocket 握手 protocol TCP 服务器 HTTP 浏览器

WebSocket介绍与原理

目的:即时通讯,替代轮询

网站上的即时通讯是很常见的,比如网页的QQ,聊天系统等。按照以往的技术能力通常是采用轮询、Comet技术解决。

HTTP协议是非持久化的,单向的网络协议,在建立连接后只允许浏览器向服务器发出请求后,服务器才能返回相应的数据。当需要即时通讯时,通过轮询在特定的时间间隔(如1秒),由浏览器向服务器发送Request请求,然后将最新的数据返回给浏览器。这样的方法最明显的缺点就是需要不断的发送请求,而且通常HTTP request的Header是非常长的,为了传输一个很小的数据 需要付出巨大的代价,是很不合算的,占用了很多的宽带。

缺点:会导致过多不必要的请求,浪费流量和服务器资源,每一次请求、应答,都浪费了一定流量在相同的头部信息上

然而WebSocket的出现可以弥补这一缺点。在WebSocket中,只需要服务器和浏览器通过HTTP协议进行一个握手的动作,然后单独建立一条TCP的通信通道进行数据的传送。

原理
WebSocket同HTTP一样也是应用层的协议,但是它是一种双向通信协议,是建立在TCP之上的。

连接过程 —— 握手过程

  1. 浏览器、服务器建立TCP连接,三次握手。这是通信的基础,传输控制层,若失败后续都不执行。
  2. TCP连接成功后,浏览器通过HTTP协议向服务器传送WebSocket支持的版本号等信息。(开始前的HTTP握手)
  3. 服务器收到客户端的握手请求后,同样采用HTTP协议回馈数据。
  4. 当收到了连接成功的消息后,通过TCP通道进行传输通信。

标签:WebSocket,握手,protocol,TCP,服务器,HTTP,浏览器
From: https://www.cnblogs.com/leejk/p/16721349.html

相关文章

  • 【由浅入深_打牢基础】WebSocket的利用方式
    image-20220919091111362【由浅入深_打牢基础】WebSocket的利用方式在最近的渗透任务中,有一个站我记得很清楚,我每次进它会进行websocket连接,返回的状态码是101,虽然每......
  • protocol-buffer3语言指南-02
    AnyAny消息类型可以让你使用消息作为嵌入类型而不必持有他们的.proto定义.Any把任意序列化后的消息作为bytes包含,带有一个URL,工作起来类似一个全局唯一的标识符.为......
  • donet framework 4.8 WebApi 集成 websocket 的测试
    后端:C#.netframework4.8WebApi  usingSystem;usingSystem.Collections.Generic;usingSystem.Net;usingSystem.Net.Http;usingSystem.Net.WebSockets;usi......
  • WebSocket 服务端和客户端
    IDictionary<string,IWebSocketConnection>SocketList=newDictionary<string,IWebSocketConnection>();privatevoidstartSockeListener(){......
  • Netty+WebSocket整合STOMP协议
    1.STOMP协议简介常用的WebSocket协议定义了两种传输信息类型:文本信息和二进制信息。类型虽然被确定,但是他们的传输体是没有规定的,也就是说传输体可以自定义成什么样的数据......
  • vue+websocket
    一、websocket是什么WebSocket通信协议于2011年被IETF定为标准RFC6455,并由RFC7936补充规范。WebSocketAPI也被[W3C]定为标准。它算是html5规范中的一个部分,算是一种协......
  • mosquitto配置protocol websockets无效,MQTT X或其他程序连接不上
    mqtt(mosquitto)配置protocolwebsockets必须配置socket_domain#mqtt协议配置,分为IP4和IP6两种,当前可以只配置启用一种listener18830.0.0.0socket_domainipv4protoco......
  • 初识WebSocket
    初识WebSocket一、WebSocket的用途参考:https://blog.csdn.net/qq_43842093/article/details/123158436https://cloud.tencent.com/developer/article/2028722大致可以......
  • 微信小程序websocket的使用
    微信小程序中使用websocket分为两步:一、现在微信公众平台的开发者工具中配置socket的域名   二、开始编写业务代码业务代码大致可以分成三个步骤:a.发起请求,建立......
  • seafile onlyoffice k8s traefik Cross origin requests are only supported for prot
    这个问题我实际上是用答案倒推寻找的原因完整报错:hasbeenblockedbyCORSpolicy:Crossoriginrequestsareonlysupportedforprotocolschemes:http,data,chr......