精华内容
下载资源
问答
  • http和WebSocket

    2017-12-25 18:20:00
    有关http和WebSocket 的区别网上有很多的质料。 个人在此仅仅是记录以下自己的学习心得,自己的理解。 1. http协议是用在应用层的协议,他是基于tcp协议的,http协议建立链接也必须要有三次握手才能发送信息。  ...

    有关http和WebSocket 的区别网上有很多的质料。

    个人在此仅仅是记录以下自己的学习心得,自己的理解。

    1. http协议是用在应用层的协议,他是基于tcp协议的,http协议建立链接也必须要有三次握手才能发送信息。

      http链接分为短链接,长链接,短链接是每次请求都要三次握手才能发送自己的信息。即每一个request对应一个response。长链接是在一定的期限内保持链接。保持TCP连接不断开。客户端与服务器通信,必须要有客户端发起然后服务器返回结果。客户端是主动的,服务器是被动的。

    2. WebSocket 

      WebSocket他是为了解决客户端发起多个http请求到服务器资源浏览器必须要经过长时间的轮训问题而生的,他实现了多路复用,他是全双工通信。在webSocket协议下客服端和浏览器可以同时发送信息。

    建立了WenSocket之后服务器不必在浏览器发送request请求之后才能发送信息到浏览器。这时的服务器已有主动权想什么时候发就可以发送信息到服务器。而且信息当中不必在带有head的部分信息了与http的长链接通信来说,这种方式,不仅能降低服务器的压力。而且信息当中也减少了部分多余的信息。

     

     

     

     

    相同点

    1. 都是一样基于TCP的,都是可靠性传输协议。
    2. 都是应用层协议。

    不同点

     1. WebSocket是双向通信协议,模拟Socket协议,可以双向发送或接受信息。HTTP是单向的。
     2. WebSocket是需要浏览器和服务器握手进行建立连接的。而http是浏览器发起向服务器的连接,服务器预先并不知道这个连接。

    联系

    WebSocket在建立握手时,数据是通过HTTP传输的。但是建立之后,在真正传输时候是不需要HTTP协议的。


    在WebSocket中,只需要服务器和浏览器通过HTTP协议进行一个握手的动作,然后单独建立一条TCP的通信通道进行数据的传送。
    WebSocket连接的过程是:
    首先,客户端发起http请求,经过3次握手后,建立起TCP连接;http请求里存放WebSocket支持的版本号等信息,如:Upgrade、Connection、WebSocket-Version等;
    然后,服务器收到客户端的握手请求后,同样采用HTTP协议回馈数据;
    最后,客户端收到连接成功的消息后,开始借助于TCP传输信道进行全双工通信。

     

    转载于:https://www.cnblogs.com/mttcug/p/8110619.html

    展开全文
  • http和websocket

    2020-06-06 20:40:46
    http(应用层协议) http1.0最大的问题,传送一次资源建立一次http连接。三次握手四次挥手带来的性能消耗。 HTTP1.1:长连接,一次http请求,发送多次http资源。...websocket和http都是应用层协议。

    http(应用层协议)

    • http1.0最大的问题,传送一次资源建立一次http连接。三次握手和四次挥手带来的性能消耗。
    • HTTP1.1:长连接,一次http请求,发送多次http资源。
    • HTTP2.0:解决了连接的1对1,一个连接可以有多个请求。
    • 局限性:只能由客户端联系服务端,客户端不联系服务端,服务端就不会主动给客户端发送。

    webscocket(html5)

    • 完成一次握手,建立持久连接。进行双向传输。
    • 解决问题:服务端有消息可以主动发送给客户端。
    • websocket和http都是应用层协议。
    • 和HTTP相同的端口:默认为80,https为443。
    • 缺点:利用率可能不高。

    http和websocket的区别

    相同点:

    • 都是应用层的协议
    • 都是基于tcp,都是可靠协议

    不同点:

    • websocket是持久化的连接,http不是(keep-alive是有时间限制的)
    • websocket是双向的,而http是单向的。
    • websocket服务端可以主动发送给客户端,http不能。

    长连接和短连接

    1. 短连接:在HTTP1.0中,客户端发送请求,服务器接收请求,双方建立连接,服务器响应资源,请求结束。
    2. 长连接:在HTTP 1.1,客户端发出请求,服务端接收请求,双方建立连接,在服务端没有返回之前保持连接,当客户端再发送请求时,它会使用同一个连接。这一直继续到客户端或服务器端认为会话已经结束,其中一方中断连接。
    • 优势:减少了连接请求,降低TCP阻塞,减少了延迟,实时性较好。
    • 劣势:可能会影响性能,因为它在文件被请求之后还保持了不必要的连接很长时间。

    websocket和ajax的区别

    1. Ajax:异步xml和JavaScript。是一种创建交互网页的的技术
      websocket:基于HTML5的新技术,实现了浏览器和服务器全双工、持久的连接。
    2. Ajax:短连接,数据发送和接收完成就结束。
      websocket:长连接,会话一直保持
    3. ajax适合非实时性,websocket适合实时性连接。
    4. ajax由客户端发起,socket谁发起都可以。
    5. 最重要的是ajax要不断去轮询询问服务端,看有没有新的服务端信息。

    websocket可以代替ajax吗?
    分情况

    1. 部分浏览器可能不支持
    2. 交互不频繁的没有必要
    展开全文
  • http websocket

    2018-04-24 16:28:06
    是html5开始提供的一种在单个TCP连接上进行双向通信的新协议,也就是说,客户端浏览器首先要向服务器发起一个http请求,这个请求通常的http请求不同,包含了一些附加信息,比如:'Upgrade:websocket'表明这是一个...

    前端时间在做项目的时候遇到这样的一个场景:网页中有一个数据表格,这个数据表格数据表格的内容是从后台读取出来的,但是这些内容会随着时间的变化而变化,有点类似于股票行情。

    当时我的做法是用setInterval('toPage(1)',1000)来定时执行函数,toPage()方法是通过ajax请求访问服务器,并在成功后拿到后台返回的数据然后去更新页面。

    但是这种定时的方法有很多不足:

    (1)频繁的网络请求对于客户端和服务器来说都是一种负担,比如当网页中出现多个定时器刷新页面的时候。

    (2)如果服务器中没有更新数据,还是返回跟上一次一样的内容的话,这一次的定时任务时不必要的。

    (3)如果服务器可能刚更新了数据,但是下一轮的定时任务还没有开始的话,页面内容可能就不够新。

    而造成这些不足的原因归结起来,主要还是由于服务器的响应总是被动的,也就是http请求总是有客户端发起,再有服务端来返回响应数据。

    websocket是html5开始提供的一种在单个TCP连接上进行双向通信的新协议,也就是说,客户端浏览器首先要向服务器发起一个http请求,这个请求和通常的http请求不同,包含了一些附加信息,比如:'Upgrade:websocket'表明这是一个申请协议升级的HTTP请求,服务端解析这些附加信息后返回响应消息给客户端,这样客户端和服务端的websocket连接就建立起来了,双方就可以自由的传递信息,并且这个连接会持续存在,直到双方的某一方主动的关闭连接。当你获取websocket连接后,你可以通过send()方法来向服务器发送数据,并通过onmessage事件来接收服务器返回的数据。

    具体做法是:

    (1)创建websocket对象      

    var Socket = new WebSocket(url, [protocol] );

                * 第一个参数 url, 指定连接的 URL。

                        websocket的URL格式是ws://wss://

                                wss://是加密通信

                * 第二个参数 protocol 是可选的,指定了可接受的子协议。

                例如:

        var wsServer = 'ws://localhost:8080/Demo'; //服务器地址
        var Socket = new WebSocket(wsServer); //创建WebSocket对象

    Socket.readyState 表示连接状态
        0: 表示连接尚未建立。
        1:表示连接已建立,可以进行通信
        2:表示连接正在进行关闭
        3:表示连接已经关闭或者连接不能打开

    (2)执行websocket相关事件   

    Socket.onopen  连接建立时触发
    Socket.onmessage  客户端接收服务器数据时触发
    Socket.onerror   通信发生错误时触发
    Socket.onclose   连接关闭时触发
    

    Socket.send()   使用连接发送数据
    Socket.close()   关闭连接
    

    实例如下:
    function WebSocketTest(){
       if ("WebSocket" in window) {
           alert("您的浏览器支持 WebSocket!");
           // 打开一个 web socket
           var ws = new WebSocket("ws://localhost:8080/main");
           ws.onopen = function(){
               // Web Socket 已连接上,使用 send() 方法发送数据
               ws.send("发送数据");
               alert("数据发送中...");
           };
            ws.onmessage = function (evt) { 
               var received_msg = evt.data;
               alert("数据已接收...");
            };
            ws.onclose = function() { 
               // 关闭 websocket
               alert("连接已关闭..."); 
            };
        }else{
             // 浏览器不支持 WebSocket
             alert("您的浏览器不支持 WebSocket!");
         }
     }


    http的生命周期通过request来界定,也就是一个request只能有一个response,而且这个response是被动的(服务端不能主动联系客户端,只能有客户端发起);另外http还是一个状态协议,也就是说每次都要重新传输鉴别信息来告诉服务器你是谁;

    websocket是基于http协议的,只需要经过一次http请求,就可以做到消息传送了,也就是借用了http协议来完成一次握手后,服务端可以就可以主动推送消息给客户端。这个协议解决了传统http同步有延迟,而且非常消耗资源的问题。
    展开全文
  • 有关http和WebSocket 的区别网上有很多的质料。个人在此仅仅是记录以下自己的学习心得,自己的理解。1. http协议是用在应用层的协议,他是基于tcp协议的,http协议建立链接也必须要有三次握手才能发送信息。http链接...

    有关http和WebSocket 的区别网上有很多的质料。

    个人在此仅仅是记录以下自己的学习心得,自己的理解。

    1. http协议是用在应用层的协议,他是基于tcp协议的,http协议建立链接也必须要有三次握手才能发送信息。

    http链接分为短链接,长链接,短链接是每次请求都要三次握手才能发送自己的信息。即每一个request对应一个response。长链接是在一定的期限内保持链接。保持TCP连接不断开。客户端与服务器通信,必须要有客户端发起然后服务器返回结果。客户端是主动的,服务器是被动的。

    2. WebSocket

    WebSocket他是为了解决客户端发起多个http请求到服务器资源浏览器必须要经过长时间的轮训问题而生的,他实现了多路复用,他是全双工通信。在webSocket协议下客服端和浏览器可以同时发送信息。

    建立了WenSocket之后服务器不必在浏览器发送request请求之后才能发送信息到浏览器。这时的服务器已有主动权想什么时候发就可以发送信息到服务器。而且信息当中不必在带有head的部分信息了与http的长链接通信来说,这种方式,不仅能降低服务器的压力。而且信息当中也减少了部分多余的信息。

    相同点

    1. 都是一样基于TCP的,都是可靠性传输协议。

    2. 都是应用层协议。

    不同点

    1. WebSocket是双向通信协议,模拟Socket协议,可以双向发送或接受信息。HTTP是单向的。

    2. WebSocket是需要浏览器和服务器握手进行建立连接的。而http是浏览器发起向服务器的连接,服务器预先并不知道这个连接。

    联系

    WebSocket在建立握手时,数据是通过HTTP传输的。但是建立之后,在真正传输时候是不需要HTTP协议的。

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

    WebSocket连接的过程是:

    首先,客户端发起http请求,经过3次握手后,建立起TCP连接;http请求里存放WebSocket支持的版本号等信息,如:Upgrade、Connection、WebSocket-Version等;

    然后,服务器收到客户端的握手请求后,同样采用HTTP协议回馈数据;

    最后,客户端收到连接成功的消息后,开始借助于TCP传输信道进行全双工通信。

    展开全文
  • 有关http和WebSocket 的区别网上有很多的质料。个人在此仅仅是记录以下自己的学习心得,自己的理解。1. http协议是用在应用层的协议,他是基于tcp协议的,http协议建立链接也必须要有三次握手才能发送信息。http链接...
  • wensocket它是为了解决客户端发起多个http请求到服务器资源浏览器必须要经过长时间的轮询问题而生的,它实现了多路复用,在websocket协议下客户端浏览器可以同时发送信息。websocket只需建立一次request/response...
  • 貌似cocoscreator并没有自己封装http和websocket ,所以我在API文档里搜索关键字"http"和"websocket"啥也搜不着。 HttpGET Get方式,客户端请求本机地址3000端口,并携带参数url和name,服务端收到后返回name参数...
  • HTTP和WebSocket构建在C 11中的Boost.Asio上
  • 貌似cocoscreator并没有自己封装http和websocket ,所以我在API文档里搜索关键字"http"和"websocket"啥也搜不着。 一 Http Get 二 Http Post 三 WebSocket 四 移植Egret封装好的http和websocket到cocos...
  • 一般来说,C++的项目多是偏底层,不怎么需要跟http打交道,但有时候又需要在C++后端项目中加入一些简单 http以及websocket接口,比如游戏运营服务器,金融交易监控服务等。 但是传统的实现方法比如采用libcurl,...
  • c-http-ws:C中(不安全)HTTP和WebSocket的开源库
  • Bumblebee是一种支持http和websocket服务网关。它的重点是针对WebAPI微服务提供服务负载和管理;作为微服务应用网关它提供了应用服务负载,故障迁移,安全控制,监控跟踪和日志处理等;不仅如此它强大的插件扩展功能...
  • http和websocket关系及理解 http和websocket都是基于TCP的应用层的协议。用于客户端和服务端之间的通信。 基于http的协议,因为简单,被广泛应用,但是它本身是有一些缺陷的。比如使用http协议弹指服务器上是否有...
  • 野兽:基于C ++ 11的Boost.Asio构建的HTTP和WebSocket
  • HTTP WebSocket的区别

    2016-11-03 17:20:00
    有关http和WebSocket 的区别网上有很多的质料。 个人在此仅仅是记录以下自己的学习心得,自己的理解。 1. http协议是用在应用层的协议,他是基于tcp协议的,http协议建立链接也必须要有三次握手才能发送信息。  ...
  • rocky - 功能齐全、面向中间件的HTTP和WebSocket代理拥有流量回放和拦截
  • 谈一谈HTTP和WebSocket的区别 ** 作者:16161 时间:2019/10/11 21:57 标签:WebSocket HTTP HTTP协议是互联网上应用最为广泛的应用层协议,万维网都要遵守HTTP协议。 HTTP/1.0 HTTP/1.0版本实现了HTTP协议的基本...
  • 我正在尝试在同一端口上启用tcp,http和websocket.io通信。我开始使用tcp服务器(在////行上方),它可以正常工作。然后,我运行了在websocket.io(位于////行下方的部分)上找到的echo服务器示例,它也可以正常工作。...
  • Forecast 是一个小而简单的跨平台实用程序,用于测试HTTP和WebSocket服务器连接。 有了这个工具,你可以做到以下几点。测试主机是否能够接收连接 。远程检查并验证证书。测试IPv4和IPv6。验证A和AAAA记录的存在。
  • NetBenchmark是针对网络服务压测的开源组件,组件提供TCP,HTTP和Websocket的压力测试基础功能;为了更好的符合业务需求组件不提供UI配置信息源的方式(毕竟这种方式只能作有限制测试),而是由使用者来自己...
  • 原文:C++实现轻量级极简httpserver和httpclient(提供http和websocket接口) - 踏莎行的博客 - CSDN博客一般来说,C++的项目多是偏底层,不怎么需要跟http打交道,但有时候又需要在C++后端项目中加入一些简单 http...
  • Finlay解释了如何利用Java 11中的新异步API来执行REST API调用,实现HTTP和WebSocket操作。曾几何时,使用Java SE(标准版)API执行常见的HTTP操作(如REST API调用)可能被描述为不自然且繁琐。Java 11正式改变了这...
  • NetBenchmark是针对网络服务压测订制的开源组件,组件提供TCP,HTTP和Websocket的压力测试基础功能;为了更好的符合业务需求组件不提供UI配置信息源的方式(毕竟这种方式只能作有限制测试),而是由使用者来自己制定...
  • 基于http和websocket的微信小程序开发 开发工具 微信开发者工具,没得说 小程序组织结构 pages文件夹放各个界面 app.json注册各个界面并配置windows pages里各界面标准四个文件,xxx.wxml.相当于html,xxx.wxss...
  • APP开发教程之HTTP和WebSocket协议 2016-09-24 15:07 在做手机app开发的时候,那天和boss聊天,不经意间提到了Meteor,然后聊到了WebSocket,然后就有了以下对话,不得不说,看问题的方式不同,看到的东西...
  • 因连接websocket业务逻辑是需要先登录,拿到token作为参数去请求,所以测试websocket协议也必须先使用登录接口,但是我又不想先全部登录一下拿到token保存起来,所以想http和websocket的压测一起处理。这里是基于ws4...
  • HTTP和WebSocket详解

    千次阅读 2018-05-09 11:41:17
    在整合之前需要搞清楚下面几个问题:1、Socket是什么2、为什么有了http还要用Socket3、springBoot整合WebSocket主要作用一、Socket是什么二、什么有了http还要用Socket1、HTTP是通过网站地址(URL)从Web服务器上将...
  • 1.注入HttpModule模块:2.注入http服务map方法需要导入”rajx/Rx”组件,作用是针对流的处理。...1.angualr2中没有http类对websocket请求的流处理。所谓的流处理也就是设置被监听的对象,这样可以...
  • Webcat是一个基于netty的简单、高性能服务端框架,目前提供http和websocket两种协议的快速开发模式。webcat采用spring进行对象管理,因此工程需要依赖spring框架,Github地址。 下载源代码后,可以直接运行...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 5,256
精华内容 2,102
关键字:

http和websocket