websocket在实现过程中存在哪些阻拦?

fabaoyi 服务器推送事件 最后由 river.cao 于2019年12月07日回复

  • 3 回答
  • 2.4k 浏览

websocket在实现过程中在很多情况下会被阻拦具体指的是什么阻拦?

  • 极客学院_ASMITA 2015年05月25日 回答 #1楼
  • 科普下知识吧用过java、vb、c的人对websocket都不陌生不过h5的websocket和他们有所区别。阻拦在任何程序中都会出现主要来自于服务器的响应服务器不响应就是阻拦数据传输验证会导致浏览器崩溃这块目前没有什么delay的参数支持websocket的规则还在制定不建议现在使用它到生产环境。下面看我科普文章吧

    一、WebSocket是HTML5出的东西协议也就是说HTTP协议没有变化或者说没关系但HTTP是不支持持久连接的长连接循环连接的不算

    首先HTTP有1.1和1.0之说也就是所谓的keep-alive把多个HTTP请求合并为一个但是Websocket其实是一个新协议跟HTTP协议基本没有关系只是为了兼容现有浏览器的握手规范而已也就是说它是HTTP协议上的一种补充可以通过这样一张图理解

    6651f2f811ec133b0e6d7e6d0e194b4c_b.jpg有交集但是并不是全部。

    另外Html5是指的一系列新的API或者说新规范新技术。Http协议本身只有1.0和1.1而且跟Html本身没有直接关系。。

    通俗来说你可以用HTTP协议传输非Html数据就是这样=。=

    再简单来说层级不一样

    二、Websocket是什么样的协议具体有什么优点

    首先Websocket是一个持久化的协议相对于HTTP这种非持久的协议来说。

    简单的举个例子吧用目前应用比较广泛的PHP生命周期来解释。

    1) HTTP的生命周期通过Request来界定也就是一个Request 一个Response那么HTTP1.0这次HTTP请求就结束了。

    在HTTP1.1中进行了改进使得有一个keep-alive也就是说在一个HTTP连接中可以发送多个Request接收多个Response。

    但是请记住 Request = Response 在HTTP中永远是这样也就是说一个request只能有一个response。而且这个response也是被动的不能主动发起。

    教练你BB了这么多跟Websocket有什么关系呢

    _(:з」∠)_好吧我正准备说Websocket呢。。

    首先Websocket是基于HTTP协议的或者说借用了HTTP的协议来完成一部分握手。

    在握手阶段是一样的

    -------以下涉及专业技术内容不想看的可以跳过lol:或者只看加黑内容--------

    首先我们来看个典型的Websocket握手借用Wikipedia的。。

    GET /chat HTTP/1.1
    Host: server.example.com
    Upgrade: websocket
    Connection: Upgrade
    Sec-WebSocket-Key: x3JJHMbDL1EzLkh9GBhXDw==
    Sec-WebSocket-Protocol: chat, superchat
    Sec-WebSocket-Version: 13
    Origin: http://example.com
    

  • 1 评论