• WebSocket 是什么原理?为什么可以实现持久连接?


    1.什么是WebSocket?

    WebSocket是一种协议,是一种持久化协议,而HTTP是一种非持久协议(长连接,循环连接的不算)

    WebSocket是HTML5出的东西(协议),也就是说HTTP协议没有变化,或者说没关系

    WebSocket 是一种协议,基于 TCP 协议;HTTP 也是一种协议,基于 TCP 协议。

    websocket约定了一个通信的规范,通过一个握手的机制,客户端和服务器之间能建立一个类似tcp的连接,从而方便它们之间的通信。
    在websocket出现之前,web交互一般是基于http协议的短连接或者长连接。WebSocket协议本质上是一个基于TCP的协议,它由通信协议和编程API组成,WebSocket能够在浏览器和服务器之间建立双向连接,以基于事件的方式,赋予浏览器实时通信能力。既然是双向通信,就意味着服务器端和客户端可以同时发送并响应请求,而不再像HTTP的请求和响应。


    连接要保持还是关闭是由你服务器应用来控制的。

    首先HTTP有1.1和1.0之说,也就是所谓的keep-alive,把多个HTTP请求合并为一个,但是Websocket其实是一个新协议,跟HTTP协议基本没有关系,只是为了兼容现有浏览器的握手规范而已,也就是说它是HTTP协议上的一种补充可以通过这样一张图理解
    可以看到有交集,但是并不是全部。
    另外Html5是指的一系列新的API,或者说新规范,新技术。Http协议本身只有1.0和1.1,而且跟Html本身没有直接关系。。
    通俗来说,你可以用HTTP协议传输非Html数据,就是这样
    再简单来说,层级不一样。

    2.
     
    websocket是一种全新的协议,不属于http无状态协议,协议名为"ws"这意味着一个websocket连接地址会是这样的写法:ws://**

     
     
     3.webSocket如何兼容低浏览器?

    WebSocket是目前"唯一"的一个浏览器下的Socket的标准, 它是通过浏览器内部提供的API来实现访问的. 低版本的浏览器没有WebSocket这个标准, 就意味这些浏览器不允许用户通过它们来实现Socket通讯。

     那么怎么实现兼容低版本浏览器呢?

    Adobe Flash socket、ActiveX HTML File(IE)、基于multipart编码发送XHR、基于长轮询的XHR

     
     
     
     
  • 相关阅读:
    JAVA学习日记1-0706
    同步一个fork
    面试题 17.13. 恢复空格-7月9日
    3. 无重复字符的最长子串(leetcode)-7月8日
    面试题 16.11. 跳水板(leetcode)-7月8日
    112.路径总和(leetcode)-7月7日
    Git使用入门
    第一次尝试
    OpenPCDet: Open-MMLab 面向LiDAR点云表征的3D目标检测代码库
    人工智能和机器学习能为抗击新冠肺炎做些什么?
  • 原文地址:https://www.cnblogs.com/GumpYan/p/5712355.html
Copyright © 2020-2023  润新知