前言

伴随着网络的快速发展,网络通讯越来越重要,通讯的快捷、安全、方便影响着用户的体验。本文将探讨这些技术的原理、特点以及在实际应用中的应用场景。

1.HTTTP(超文本传输协议)

HTTP是一种传输超文本的协议,它是现代互联网通信的基础。其特点包括:

  • 简单性:HTTP使用简单的请求-响应模型,客户端向服务端发送请求,服务器响应请求。
  • 无状态性:每个请求都是独立的,服务器不会保留客户端的状态信息。
  • 灵活性:HTTP协议支持不同类型的数据传输,如文本、图片、视频等。

2.Websocket

Websocket是一种在单个TCP连接上进行全双工通信的协议,它允许客户端和服务器之间进行实时数据交换。其特点包括:

  • 双向通信:Websocket允许服务器主动向客户端推送数据,而不需要客户端发起请求。
  • 低延迟:Websocket使用单个TCP连接,减少了建立和关闭连接的开销,从而降低了通信延迟。
  • 跨平台:Websocket协议被主流的浏览器和服务器支持,可以在各种设备和平台上使用。

3.Netty

Netty是一个基于NIO的网络通信框架,它提供了高效的事件驱动机制,适用于开发高性能、可拓展的网络应用。其特点包括:

  • 异步性:Netty使用异步的I/O操作,可以处理大量并发的连接而不会阻塞线程。
  • 可组件化:Netty的组件化设计使得开发者可以灵活地组合各种功能模块,以满足不同的需求。
  • 高性能: Netty提供了高性能的网络编程能力,适用于开发高吞吐量、低延迟的网络应用。

在上面的一些介绍中我们有一个全双工的概念,那么这个是什么意思呢???

首先它是有单工,半双工,全双工三种概念。

  • 单工:是指数据只能在一个方向上传输,通信双方中的一个角色只能发送数据,另一个角色只能接收数据。这就意味着通信双方不能同时发送和接收数据。我们的HTTP通信就是一种单工通信。
  • 半双工:是指通信允许在两个方向上进行传输,但是不能同时进行。通信双方可以交替地发送和接收数据,但不能同时进行发送和接收。
  • 全双工:这个大家肯定就知道了,允许数据在两个方向上同时进行传输,通信双方可以同时发送和接收数据,无需等待对方完成发送或接收。

HTTP和Websocket

HTTP和Websocket都是网络通信协议,但它们的区别已经显而易见了。

  • 连接方式:HTTP是基于请求和相应模型的,每次请求都需要向客户端发起连接,虽然可以通过长连接或长轮询的方式实现半双工通信,但是服务器还是不能主动向客户端发送信息;而Websocket是基于长连接的,客户端和服务器之间保持一个持久的连接,可以随时进行双向通信。
  • 数据格式:HTTP协议通常用于传输静态内容,如HTML、CSS、JavaScript等;而Websocket协议更适合传输实时数据,如聊天消息等。
  • 性能开销:由于HTTP协议每次请求都需要建立连接和断开连接,所以在频繁通信的场景下会有较大的性能开销;而Websocket协议使用单TCP连接,可以减少这种开销。

简单了解HTTP、Websocket和Netty的更多相关文章

  1. Eclipse 搭建一个简单的SpringBoot+WebSocket环境

    WebSocket是一种在单个TCP连接上进行全双工通信的协议. WebSocket通信协议于2011年被IETF定为标准RFC 6455,并由RFC7936补充规范. WebSocket API也被 ...

  2. 基于websocket的netty demo

    前面2文 基于http的netty demo 基于socket的netty demo 讲了netty在http和socket的使用,下面讲讲netty如何使用websocket websocket是h ...

  3. netty同时做http和websocket(netty入门)

    ---恢复内容开始--- http://www.jianshu.com/p/5c29c6c6d28c ---恢复内容结束--- http://www.jianshu.com/p/5c29c6c6d28 ...

  4. WebSocket就是这么简单

    前言 今天在慕课网上看到了Java的新教程(Netty入门之WebSocket初体验):https://www.imooc.com/learn/941 WebSocket我是听得很多,没有真正使用过的 ...

  5. Netty实战十二之WebSocket

    如果你有跟进Web技术的最新进展,你很可能就遇到过“实时Web”这个短语,这里并不是指所谓的硬实时服务质量(QoS),硬实时服务质量是保证计算结果将在指定的时间间隔内被递交.仅HTTP的请求/响应模式 ...

  6. WebSocket简单介绍(1)

    HTML5作为下一代WEB标准,拥有许多引人注目的新特性,如Canvas.本地存储.多媒体编程接口.WebSocket等等.今天我们就来看看具有“Web TCP”之称的WebSocket. WebSo ...

  7. netty学习第5章 netty整合websocket

    学习netty之后,可能都有一个疑问,就是如何选择一个编码.解码器,在netty中的编解码可是和json这种编解码是不一样的,netty的编解码器主要是解决TCP粘包.拆包的问题.netty中有许多自 ...

  8. netty系列之:使用netty搭建websocket服务器

    目录 简介 netty中的websocket websocket的版本 FrameDecoder和FrameEncoder WebSocketServerHandshaker WebSocketFra ...

  9. websocket++简单使用例子

    前言 html5支持使用websocket协议与服务器保持一个长连接,方便双方互相传输数据,而且服务器也能主动发送信息给客户端,而在这之前使用HTTP是很难做到的.下面介绍使用C++实现的websoc ...

  10. 简单聊聊WebSocket

    一.概述 上一篇文章<浅析一次HTTP请求>我们分析了简单的一次 HTTP 请求具体是怎么样完成的,分析了 HTTP 协议的数据结构,如何连接,如何断开,又是如何多路复用的,那么今天我们来 ...

随机推荐

  1. [转帖]一次ORA-3136的处理

    https://oracleblog.org/working-case/deal-with-ora3136/ 最近收到一个告警,用户说数据库无法连接,但是从监控上看,oracle的后台进程已经侦听进程 ...

  2. [转帖]Region Merge Config

    TiKV replicates a segment of data in Regions via the Raft state machine. As data writes increase, a ...

  3. 【转帖】3.JVM内存结构概述

    目录 1.JVM内存结构 1.JVM内存结构 在JVM系列的第一篇文章中已经给出了JVM内存结构的简图,下面是JVM内存结构更加详细的图. 同样,JVM的内存结构可以分为上中下3层. 上层主要是类加载 ...

  4. [转帖]docker使用buildx构建多平台(x86,arm64)构架镜像

    https://blog.csdn.net/atzqtzq/article/details/128583331 配置文件激活buildx docker目前使用版本为Server Version: 20 ...

  5. 跨主机Docker容器通信的学习

    背景 骨折在家找自己的人比较少. 又因为出不去也没法做运动,就不如将之前没学习深入的地方学习下 先是进行Docker 搭建 redis cluster的处理. 当时发现必须使用 --net=host进 ...

  6. uni-app 计算属性 computed

    功能:=>大于1000用kg表示 小于1000,用g表示 计算属性 计算属性必须是有一个返回值的哦 在html写被计算的值 在computed中去直接调用哈 <view> <t ...

  7. Qt中qreal的坑

    今天在写Qt的时候遇到了一个bug:同样一个方程在PC机上算的结果是11,但在arm-Linux设备上算出来的结果是12,我自己用计算器按出来的结果也是12. 该段程序是这样的: maxnumbar ...

  8. 从零开始配置 vim(5)——本地设置与全局设置

    在前面的一系列文章中,我们介绍了使用 :noremap 进行键盘映射,使用 set 来设置选项和 vim 的变量.并且已经在配置文件中对他们进行了相关配置. 在介绍设置那一篇文章中我们提到了,lua ...

  9. TienChin-课程管理-创建工程

    创建方式与之前一样,如下奉上 generateCourse 代码. @Test void generateCourse() { String path = "E:\\Desktop\\Tie ...

  10. MedicalGPT:基于LLaMA-13B的中英医疗问答模型(LoRA)

    MedicalGPT:基于LLaMA-13B的中英医疗问答模型(LoRA).实现包括二次预训练.有监督微调.奖励建模.强化学习训练[LLM:含Ziya-LLaMA]. **** 训练医疗大模型,实现包 ...