V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
jonychen1
V2EX  ›  2018

WebSocket 与 Socket、TCP、HTTP 的关系和异同点

  •  
  •   jonychen1 · 2018-07-18 09:21:25 +08:00 · 1432 次点击
    这是一个创建于 2102 天前的主题,其中的信息可能已经有所发展或是发生改变。

    今天来讲一下与其他协议的区别和相同点,让各位同学能够更加深入的去了解和运用各种协议。 1 什么是 WebSocket ? WebSocket 从满足基于 Web 的日益增长的实时通信需求应运而生,解决了客户端发起多个 Http 请求到服务器资源浏览器必须要在经过长时间的轮询问题,实现里多路复用,是全双工、双向、单套接字连接,在 WebSocket 协议下服务器和客户端可以同时发送信息。

    2 WebSocket 和 Http 的异同点 同:1 建立在 TCP 之上,通过 TCP 协议来传输数据。 2 都是可靠性传输协议。 3 都是应用层协议。 异:1 WebSocket 是 HTML5 中的协议,支持持久连接,HTTP 不支持持久连接 2 HTTP 是单向协议,只能由客户端发起,做不到服务器主动向客户端推送信息。

    3 WebSocket 和 Socket Socket 本身并不是一个协议,它工作在 OSI 模型会话层,是一个套接字,TCP/IP 网络的 API,是为了方便大家直接使用更底层协议而存在的一个抽象层。Socket 其实就是一个门面模式,它把复杂的 TCP/IP 协议族隐藏在 Socket 接口后面,对用户来说,一组简单的接口就是全部,让 Socket 去组织数据,以符合指定的协议。 而 WebSocket 则是一个典型的应用层协议。

    4 WebSocket HTTP 和 TCP/IP WebSocket 和 HTTP 一样,都是建立在 TCP 之上,通过 TCP 来传输数据。后面的文章我会用代码举例子来展示。

    5 Socket 和 TCP/IP 
 Socket 是对 TCP/IP 协议的封装,像创建 Socket 连接时,可以指定使用的传输层协议,Socket 可以支持不同的传输层协议(TCP 或 UDP),当使用 TCP 协议进行连接时,该 Socket 连接就是一个 TCP 连接。 说了这么多,希望对大家来理解 WebSocket 与 Socket、TCP、HTTP 的关系有所帮助,如果大家在工作当中需要用到 WebSocket 而不能解决问题的时候,建议大家可以使用一下一些三方的 WebSocket,融云、极光、GoEasy 等,我这里就给大家推一个简单免费的三方 WebSocket,GoEasy。很成熟的一款产品,推荐原因是代码简单,运行稳定。网站是 www.goeasy.io ,大家可以自己去看一下。下篇文章我会用代码来举例说明这篇文章没有具体说的地方。

    2 条回复    2018-07-25 11:45:54 +08:00
    mingyun
        1
    mingyun  
       2018-07-21 10:16:06 +08:00
    注册个账号有邮箱还要手机?
    jonychen1
        2
    jonychen1  
    OP
       2018-07-25 11:45:54 +08:00
    @mingyun 我自己注册时候也要了。现在不大清楚
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   901 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 21:25 · PVG 05:25 · LAX 14:25 · JFK 17:25
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.