前言

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

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. [转帖]TiDB Lightning 监控告警

    https://docs.pingcap.com/zh/tidb/v6.5/monitor-tidb-lightning tidb-lightning 支持使用 Prometheus 采集监控指标 ( ...

  2. [转帖]jmeter实现分布式压测

    分布式实现的前提条件: 1.master机器和奴隶机的jmeter要一致 a. jmeter版本要一致 b.jdk主要版本要一致,比如都是jdk1.8,后面的小版本不一样不影响 c.jmeter脚本中 ...

  3. [转帖]JMeter设置Http代理对web或者app进行录制

    https://www.cnblogs.com/jingdenghuakai/p/11125846.html 一.录制web 1.首先保证JMeter的安装环境都正确.启动JMeter:在安装路径的b ...

  4. [转帖]Tomcat maxKeepAliveRequests

    https://www.cnblogs.com/turn2i/p/10480088.html 在写这个问题前,其实我是为了分析项目碰到的一个tcp close wait问题.这个问题就不在这里讲了. ...

  5. [转帖]ldconfig命令

    https://linux265.com/course/linux-command-ldconfig.html ldconfig命令的作用主要是在默认搜寻目录/lib和/usr/lib以及动态库配置文 ...

  6. 【转帖】淫技巧 | 如何查看已连接的wifi密码

    主题使用方法:https://github.com/xitu/juejin-markdown-themes theme: juejin highlight: github 一.引言 在实际工作中,常常 ...

  7. [转帖]好用的parallel命令

    https://www.cnblogs.com/codelogs/p/16060043.html 原创:打码日记(微信公众号ID:codelogs),欢迎分享,转载请保留出处. 简介# 有时,我们需要 ...

  8. jenkins 安装与构建过程中的系列问题

    一.插件安装遇到的依赖问题 插件安装分为在线安装和离线安装 1.在线安装 搜索要安装的插件,然后进行安装即可 2.离线安装hpi文件 使用该方法安装插件每次只能安装一个插件,且如果插件之间存在依赖性则 ...

  9. 【踩坑记录】SpringBoot跨域配置不生效

    问题复现: 明明在拦截器里配置了跨域,就是不生效,使用PostMan等后端调试工具调试,均正常,Response中有Access-Control-Allow-Origin: *,这个Header,但是 ...

  10. OpenSSH 服务配置与管理

    SSH 是一种以安全的方式提供远程登陆的协议,也是目前远程管理Linux系统的首选方式,SSH由IETF的网络小组所制定,SSH为建立在应用层基础上的安全协议,SSH是目前较可靠,专为远程登录会话和其 ...