计算机网络——SOCKET、TCP、HTTP之间的区别与联系

2023-10-28

文章目录

一、 Socket

(1)什么是socket

  • 套接字(socket)是通信的基石,是支持TCP/IP协议的网络通信的基本操作单元

  • 它是网络通信过程中端点的抽象表示,包含进行网络通信必须的五种信息:连接使用的协议,本地主机的IP地址,本地进程的协议端口,远地主机的IP地址,远地进程的协议端口。(其实就是bind绑定)

(2)为什么需要socket

  • 应用层通过传输层进行数据通信时,TCP会遇到同时为多个应用程序进程提供并发服务的问题。多个TCP连接或多个应用程序进程可能需要通过同一个 TCP协议端口传输数据。

  • 为了区别不同的应用程序进程和连接,计算机操作系统为应用程序与TCP/IP协议交互提供了套接字(Socket)接口。【服务端利用多进程或多线程连接多个应用程序】

  • 应用层可以和传输层通过Socket接口,区分来自不同应用程序进程或网络连接的通信,实现数据传输的并发服务

(3)建立socket连接

简单描述,具体查看博文:Linux 网络编程——socket 网络编程

  • (1)建立Socket连接至少需要一对套接字(socket函数),其中一个运行于客户端,称为ClientSocket ,另一个运行于服务器端,称为ServerSocket 。

  • (2)bind做网络通信必须的五种信息绑定。

  • (3)套接字之间的连接过程分为三个步骤:服务器监听(listen),客户端请求(connect),连接确认(accept)。

(4)socket分类

  • SOCK_STREAM,流式套接字,用于TCP
  • SOCK_DGRAM,数据报套接字,用于UDP
  • SOCK_RAW,原始套接字,对于其他层次的协议操作时需要使用这个类型

二、HTTP(基于TCP)

(1)HTTP的概念

  • HTTP协议即超文本传送协议(Hypertext Transfer Protocol ),是Web联网的基础,也是手机联网常用的协议之一,HTTP协议是建立在TCP协议之上的一种应用。

(2)HTTP连接的特点

(2.1)连接请求:一次连接

  • HTTP连接最显著的特点是客户端发送的每次请求服务器都需要回送响应,在请求结束后,会主动释放连接。从建立连接到关闭连接的过程称为一次连接

1)在HTTP 1.0中,客户端的每次请求都要求建立一次单独的连接,在处理完本次请求后,就自动释放连接。
2)在HTTP> 1.1中,则可以在一次连接中处理多个请求,并且多个请求可以重叠进行,不需要等待一个请求结束后再发送下一个请求。–>异步请求

(2.2)连接请求:短连接(注意:socket是长连接)

  • 由于HTTP在每次请求结束后服务端都会主动释放连接,因此HTTP连接是一种“短连接”,要保持客户端程序的在线状态,客户端需要向服务器不断地发起连接请求。

  • 若服务器长时间无法收到客户端的请求,则认为客户端“下线”,若客户端长时间无法收到服务器的回复,则认为网络已经断开。

通常的做法是即使不需要获得任何数据,客户端也保持每隔一段固定的时间向服务器发送一保持连接的请求,服务器在收到该请求后对客户端进行回复,表明知道客户端“在线”。

三、TCP/IP协议簇(簇:包含多个协议)

  • TCP/IP(Transmission Control Protocol/Internet Protocol,传输控制协议/网际协议)是指能够在多个不同网络间实现信息传输的协议簇。

注意:TCP/IP协议不仅仅指的是TCP 和IP两个协议,而是指一个由FTP、SMTP、TCP、UDP、IP等协议构成的协议簇, 只是因为在TCP/IP协议中TCP协议和IP协议最具代表性,所以被称为TCP/IP协议。

  • TCP/IP传输协议对互联网中各部分进行通信的标准和方法进行了规定。

就像配置串口通信一样,通信双方要提前制定好规则(传输速率,传输格式),这样接受信息的过程、接受到的信息才会正确。

四、HTTP、Socket、TCP的联系

(1)SOCKET是操作TCP/IP的编程接口

  • 创建Socket连接时,可以指定使用的传输层协议,Socket可以支持不同的传输层协议(TCP或UDP),例如当使用TCP协议进行连接时,该Socket连接就是一个TCP连接。

  • 从程序员的层面上来说:socket则是对TCP/IP协议的封装和应用。socket是封装好的接口,便于程序员调用

  • Socket本身并不是协议,而是一个调用接口(API),通过Socket,我们才能使用TCP/IP协议。

  • 实际上,Socket跟TCP/IP协议没有必然的联系。Socket编程接口在设计的时候,就希望也能适应其他的网络协议。所以说,Socket的出现 只是使得程序员更方便地使用TCP/IP协议栈而已,是对TCP/IP协议的抽象,从而形成了我们知道的一些最基本的函数接口,比如create、 listen、connect、accept、send、read和write等等。

  • “TCP/IP只是一个协议栈,就像操作系统的运行机制一样,必须要具体实现,同时还要提供对外的操作接口。TCP/IP也要提供可供程序员做网络开发所用的接口,这就是Socket编程接口。”

(2)SOCKET与HTTP

(2.1)长连接与短连接

  • Socket是长连接:由于通常情况下Socket连接就是TCP连接,因此Socket连接一旦建立,通信双方即可开始相互发送数据内容,直到双方连接断开,这称为长连接(socket会自动向服务端发送心跳包吧,这样可一直保持连接)。

  • HTTP是短连接:HTTP连接使用的是“请求—响应”的方式,不仅在请求时需要先建立连接,而且需要客户端向服务器发出请求后,服务器端才能回复数据。【发送请求 -> 回复 -> 断开】,这称为短连接。

(2.2)保持数据的实时同步

很多情况下,需要服务器端主动向客户端推送数据,保持客户端与服务器数据的实时与同步。

(1)此时若双方建立的是Socket连接,服务器就可以直接将数据传送给客户端;

在实际网络应用中,客户端到服务器之间的通信往往需要穿越多个中间节点,例如路由器、网关、防火墙等,大部分防火墙默认会关闭长时间处于非活跃状态的连接而导致Socket 连接断连,因此需要通过轮询告诉网络,该连接处于活跃状态。

(2)若双方建立的是HTTP连接,则服务器需要等到客户端发送一次请求后才能将数据传回给客户端。因此,客户端定时向服务器端发送连接请求,不仅可以保持在线,同时也是在“询问”服务器是否有新的数据,如果有就将数据传给客户端。

(3)TCP/IP和HTTP协议

  • TPC/IP协议是传输层协议,主要解决数据在网络中如何传输,而HTTP是应用层协议,主要解决如何包装数据

  • “我们在传输数据时,可以只使用(传输层)TCP/IP协议,双方就能收发数据,但是无法解析数据;如果没有应用层,便无法识别数据内容,如果想要使传输的数据有意义,则必须使用到应用层协议,HTTP协议解决了浏览器和服务器之间通讯协议的数据格式解析;,应用层协议有很多,比如HTTP、FTP、TELNET等。

五、HTTP、Socket、TCP的区别

关系如下:
在这里插入图片描述

(1)Socket(套接字)

  • 现在我们了解到TCP/IP只是一个协议栈,就像操作系统的运行机制一样,必须要具体实现,同时还要提供对外的操作接口。就像操作系统会提供标准的编程接口,比如Win32编程接口一样,TCP/IP也必须对外提供编程接口,这就是Socket。现在我们知道,Socket跟TCP/IP并没有必然的联系。Socket编程接口在设计的时候,就希望也能适应其他的网络协议。所以,Socket的出现只是可以更方便的使用TCP/IP协议栈而已,其对TCP/IP进行了抽象,形成了几个最基本的函数接口。比如create,listen,accept,connect,read和write等等,不同语言都有对应的建立Socket服务端和客户端的库。

(2)Socket长连接

  • 所谓长连接,指在一个TCP连接上可以连续发送多个数据包,在TCP连接保持期间,如果没有数据包发送,需要双方发检测包以维持此连接(心跳包),一般需要自己做在线维持。 短连接是指通信双方有数据交互时,就建立一个TCP连接,数据发送完成后,则断开此TCP连接。比如Http的,只是连接、请求、关闭,过程时间较短,服务器若是一段时间内没有收到请求即可关闭连接。其实长连接是相对于通常的短连接而说的,也就是长时间保持客户端与服务端的连接状态。

  • 通常的短连接操作步骤是:连接→数据传输→关闭连接;

  • 而长连接通常就是:连接→数据传输→保持连接(心跳)→数据传输→保持连接(心跳)→……→关闭连接;

(3)什么时候用长连接,短连接

  • 长连接多用于操作频繁,点对点的通讯,而且连接数不能太多情况。每个TCP连接都需要三步握手,这需要时间,如果每个操作都是先连接,再操作的话那么处理 速度会降低很多,所以每个操作完后都不断开,下次处理时直接发送数据包就OK了,不用建立TCP连接。例如:数据库的连接用长连接, 如果用短连接频繁的通信会造成Socket错误,而且频繁的Socket创建也是对资源的浪费。

(4)TCP连接和HTTP连接的区别

  • HTTP是基于TCP的,客户端往服务端发送一个HTTP请求时第一步就是要建立与服务端的TCP连接,也就是先三次握手,从HTTP 1.1开始支持持久连接,也就是一次TCP连接可以发送多次的HTTP请求。

(5)TCP连接与Socket连接的区别

  • socket层只是在TCP/UDP传输层上做的一个抽象接口层,因此一个socket连接可以基于连接,也有可能基于UDP。基于TCP协议的socket连接同样需要通过三次握手建立连接,是可靠的;基于UDP协议的socket连接不需要建立连接的过程,不过对方能不能收到都会发送过去,是不可靠的,大多数的即时通讯IM都是后者。

(6)HTTP连接与Socket连接的区别

  • HTTP是短连接,Socket(基于TCP协议的)是长连接。尽管HTTP1.1开始支持持久连接,但仍无法保证始终连接,客户端获得响应后,连接将自行终止。而Socket连接一旦建立TCP三次握手,除非一方主动断开,否则连接状态一直保持。

  • HTTP连接服务端无法主动发消息【即单向的】,Socket连接双方请求的发送先后限制【全双工】。这点就比较重要了,因为它将决定二者分别适合应用在什么场景下。HTTP采用“请求-响应”机制,在客户端还没发送消息给服务端前,服务端无法推送消息给客户端。必须满足客户端发送消息在前,服务端回复在后Socket连接双方类似peer2peer的关系,一方随时可以向另一方喊话。

  • websocket以ws://或wss://开头。

六、总结

联系

  • 两个计算机进行网络通讯时使用TCP协议就够了,双方就能收发数据,但是无法解析数据;

  • HTTP协议解决了浏览器和服务器之间通讯协议的数据格式解析;

  • HTTP协议基于TCP协议,通过TCP协议传输数据;HTTP协议是Web联网的基础,也是手机联网常用的协议之一,HTTP协议是建立在TCP协议之上的一种应用。HTTP协议主要解决如何包装数据。

  • Socket套接字是通信的基石,是程序员能够进行 TCP/IP 编程的最小单位。是支持TCP/IP协议的网络通信的基本操作单元。当使用 TCP 协议进行连接时,该 Socket 连接就是一个TCP 连接。

区别

  • HTTP是应用层的协议,更靠近用户端;TCP是传输层的协议;而socket是从传输层上抽象出来的一个抽象层,本质是接口

  • HTTP是短连接,Socket(基于TCP协议的)是长连接

  • HTTP连接服务端无法主动发消息,客户端发送的每次请求服务器都需要回送响应。Socket连接双方请求的发送先后限制

  • HTTP位于应用层,socket位于会话层,TCP位于传输层

七、常见问题

(1)什么时候该用HTTP,什么时候该用socket ?

  • 用HTTP的情况:

    • 双方不需要时刻保持连接在线,比如客户端资源的获取、文件上传等。不需要很频繁或仅获取一次的数据可以通过简单的HTTP请求查询
  • 用Socket的情况:

    • 聊天应用程序:聊天应用程序仅使用WebSocket建立一次连接,便能在订阅户之间交换,发布和广播消息。它重复使用相同的WebSocket连接,用于发送和接收消息以及一对一的消息传输
    • 游戏应用程序:在游戏应用程序中,你可能会注意到,服务器会持续接收数据,而不会刷新用户界面。屏幕上的用户界面会自动刷新,而且不需要建立新的连接,因此在WebSocket游戏应用程序中非常有帮助。
    • 即时Web应用程序:即时Web应用程序使用一个Web套接字在客户端显示数据,这些数据由后端服务器连续发送。在WebSocket中,数据被连续推送/传输到已经打开的同一连接中,这就是为什么WebSocket更快并提高了应用程序性能的原因。 例如在交易网站或比特币交易中,这是最不稳定的事情,它用于显示价格波动,数据被后端服务器使用Web套接字通道连续推送到客户端。

(2)浏览器在与服务器建立了一个 TCP 连接后是否会在一个 HTTP 请求完成后断开?什么情况下会断开?

  • 在 HTTP/1.0 中,一个服务器在发送完一个 HTTP 响应后,会断开 TCP 链接。但是这样每次请求都会重新建立和断开 TCP 连接,代价过大。所以虽然标准中没有设定,某些服务器对 Connection: keep-alive 的 Header 进行了支持。意思是说,完成这个 HTTP 请求之后,不要断开 HTTP 请求使用的 TCP 连接。这样的好处是连接可以被重新使用,之后发送 HTTP 请求的时候不需要重新建立 TCP 连接,以及如果维持连接,那么 SSL 的开销也可以避免,维持连接后,初始化连接和 SSL 开销消失了,说明使用的是同一个 TCP 连接
  • 持久连接:既然维持 TCP 连接好处这么多,HTTP/1.1 就把 Connection 头写进标准,并且默认开启持久连接,除非请求中写明 Connection: close,那么浏览器和服务器之间是会维持一段时间的 TCP 连接,不会一个请求结束就断掉。

(3)一个TCP 连接可以发多少个 HTTP 请求?

  • 如果维持连接,一个 TCP 连接是可以发送多个 HTTP 请求的。maxKeepAliveRequests: 每个TCP连接接受最大的Http请求数目,当处理一个keep alive请求达到这个最大值,Tomcat关闭这个连接,设置为失效任何keep alive请求.

(4)一个 TCP 连接中 HTTP 请求发送可以一起发送么(比如一起发三个请求,再三个响应一起接收)?

  • HTTP/1.1 存在一个问题,单个 TCP 连接在同一时刻只能处理一个请求,意思是说:两个请求的生命周期不能重叠,任意两个 HTTP 请求从开始到结束的时间在同一个 TCP 连接里不能重叠。虽然 HTTP/1.1 规范中规定了 Pipelining 来试图解决这个问题,但是这个功能在浏览器中默认是关闭的。

  • 但是,HTTP2 提供了 Multiplexing 多路传输特性,可以在一个 TCP 连接中同时完成多个 HTTP 请求。

  • 那么在 HTTP/1.1 时代,浏览器是如何提高页面加载效率的呢?主要有下面两点:

    • 维持和服务器已经建立的 TCP 连接,在同一连接上顺序处理多个请求。
    • 和服务器建立多个 TCP 连接。

(5)为什么有时候刷新页面不需要重新建立 SSL 连接?

  • 如果采用HTTP采用持久连接,TCP 连接有的时候会被浏览器和服务端维持一段时间。TCP 不需要重新建立,SSL 自然也会用之前的。

(6)浏览器对同一 Host 建立 TCP 连接到数量有没有限制?

假设我们还处在 HTTP/1.1 时代,那个时候没有多路传输,当浏览器拿到一个有几十张图片的网页该怎么办呢?肯定不能只开一个 TCP 连接顺序下载,那样用户肯定等的很难受,但是如果每个图片都开一个 TCP 连接发 HTTP 请求,那电脑或者服务器都可能受不了,要是有 1000 张图片的话总不能开 1000 个TCP 连接吧,你的电脑同意 NAT 也不一定会同意。

所以答案是:有。Chrome最多允许对同一个 Host 建立六个 TCP 连接。不同的浏览器有一些区别。

收到的 HTML 如果包含几十个图片标签,这些图片是以什么方式、什么顺序、建立了多少连接、使用什么协议被下载下来的呢?

如果图片都是 HTTPS 连接并且在同一个域名下,那么浏览器在 SSL 握手之后会和服务器商量能不能用 HTTP2,如果能的话就使用Multiplexing 功能在这个连接上进行多路传输。不过也未必会所有挂在这个域名的资源都会使用一个 TCP 连接去获取,但是可以确定的是 Multiplexing 很可能会被用到。
如果发现用不了 HTTP2 呢?或者用不了 HTTPS(现实中的 HTTP2 都是在 HTTPS 上实现的,所以也就是只能使用 HTTP/1.1)。那浏览器就会在一个 HOST 上建立多个 TCP 连接,连接数量的最大限制取决于浏览器设置,这些连接会在空闲的时候被浏览器用来发送新的请求,如果所有的连接都正在发送请求呢?那其他的请求就只能等等了。

参考博文:
网络编程知识预备(3) ——SOCKET、TCP、HTTP之间的区别与联系

网络编程知识预备(4) —— SOCKET、TCP、HTTP之间的区别与联系

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

计算机网络——SOCKET、TCP、HTTP之间的区别与联系 的相关文章

  • NLP扎实基础4:FastText模型与Pytorch复现

    FastText 论文 Joulin Armand et al Bag of tricks for efficient text classification arXiv preprint arXiv 1607 01759 2016 Fas
  • WEB常见的攻击方式有哪些?如何防御?

    一 什么是web攻击 Web攻击 WebAttack 是针对用户上网行为或网站服务器等设备进行攻击的行为 如植入恶意代码 修改网站权限 获取网站用户隐私信息等等 Web应用程序的安全性是任何基于Web业务的重要组成部分 确保Web应用程序安
  • grep常用方法

    grep常用方法 grep常用参数 grep匹配多个关键字 0 grep高亮 1 grep 字符串 2 反向匹配grep v 字符串 不包括 grep 本身 3 grep E 同时匹配多个关键字 或 关系 grep过滤空白行和注释行 4 同
  • 软件工程期末复习汇总(非常详细)

    期末复习 文章目录 期末复习 第1章 概论 软件过程模型 瀑布模型 演化模型 增量模型 原型模型 螺旋模型 喷泉模型 基于构件的开发模型 形式方法模型 第2章 系统工程 可行性分析 经济可行性 技术可行性 法律可行性 第3章 需求工程 需求
  • linux 下进程间通讯: 共享文件

    共享文件算是比较传统的进程间数据交换的一种方式 但是由于涉及到不同进程间反复文件I O 难免显得有些效率低下 共享文件的本质 实际是就是某个进程向共享为念写入数据 一个或多个进程从文件中读取数据 有可能涉及到进程之间资源竞争的问题 这里就涉
  • 【使用教程】一体化伺服电机在使能状态下如何切换模式

    PMM一体化伺服电机是一种集成了控制器 驱动器 编码器和伺服电机的设备 在使能状态下 电机进入 工作状态 在此状态下切换模式可以改变电机的运行方式 本文将介绍PMM一体化伺服电机在使能状态下如何切换模式 首先 我们需要了解PMM一体化伺服电

随机推荐

  • yolov2详细讲解

    yolov2详细讲解 概述 YOLO v1虽然检测速度快 但在定位方面不够准确 并且召回率较低 为了提升定位准确度 改善召回率 yolov2在yolov1的基础上提出了几种改进策略 如下图所示 一些改进方法能有效提高模型的mAP 改进方法介
  • java注解与反射

    一 注解Annotation 什么是注解 从jdk1 5之后 java增加对元数据 描述数据的数据 的支持 就是注解 注解可以再程序编译 类加载 运行时被读取 并执行相依的操作 注解 Annotation 它可以声明在包 类 字段 方法 局
  • Linux 环境部署 Nexus 服务

    一 私服是什么 一个特殊的远程仓库 它是架设在局域网内的仓库服务 供局域网内的开发人员使用 当Maven需要下载构建的使用 它先从私服请求 如果私服上没有的话 则从外部的远程仓库下载 然后缓存在私服上 再为Maven的下载请求提供服务 环境
  • 【满分】【华为OD机试真题2023 JS】狼羊过河

    华为OD机试真题 2023年度机试题库全覆盖 刷题指南点这里 狼羊过河 时间限制 1s 空间限制 256MB 限定语言 不限 题目描述 一农夫带着m只羊 n只狼过河 农夫有一条可载x只狼 羊的船 农夫在时或者羊的数量大于狼时 狼不会攻击羊
  • 剪映电脑版详细使用教程,让视频剪辑变得更简单了

    这几天关于剪映电脑版的消息非常多 相比于专业成熟的视频剪辑软件 但大家对这款剪映似乎特别感兴趣 小编也抽时间简单使用了一下 相比于adobe Premiere 和达芬奇来说 真的特别简单上手 结合了手机版的触摸与鼠标操作 新手也能简单上手了
  • 软件测试主要考点梳理以及真题讲解(附答案)

    需要题目答案及相关复习资料关注后留言私信即可 白驹过隙 转眼大学三年就过去了 软件测试与维护也成为大学中最后一门考试的科目 接下来为大家总结一下软件测试与维护考试的主要内容 题型 以及真题答案 一 题型 题型仅限于我们学校 SCUT 其他学
  • EDA12--DC脚本命令(一)

    这里写目录标题 一 流程简介 二 启动DC 三 读入与链接 3 1 analyze elaborate 3 1 1 analyze命令 3 1 2 elaborate命令 3 2 read命令 四 工作环境设置 4 1 设置工作条件 4 2
  • STM32——PWM(呼吸灯&舵机使用)

    目录 1 与pwm相关的函数介绍 1 1 输出比较函数配置 1 1 1 以下四个函数是配置图1中的四个比较单元 1 1 2 输出结构体赋默认值 1 2 单独修改参数的相关函数 1 2 1 单独设置极性相关函数 1 2 2 单独修改输出使能参
  • 数字图像处理领域的二十四个典型算法

    转自 http blog csdn net v JULY v article details 6210124 作者 July 二零一一年二月二十六日 参考 百度百科 维基百科 vc数字图像处理 数字图像处理领域的二十四个典型算法及vc实现
  • 计算机中丢失MSVCR120.dll,电脑找不到MSVCR120.dll怎么办

    在电脑打开浏览器后在顶部栏目搜索或许点击这里传送门 dll修复程序 site 按下回车键然后进入下载msvcp120 dll系统文件 1 然后再打开解压好的文件 打开后点击开始安装电脑丢失的msvcp120 dll文件 2 开始快速的进行相
  • 半监督目标检测(三)

    目录 ISMT 动机 1 Overview 2 Pseudo Labels Fusion 3 Interactive Self Training 4 Mean Teacher Unbiased Teacher 动机 1 Overview 2
  • H5使用hook实现网络连接情况判断

    最近使用hook写了一个小练习 作用就是判断网络的连接情况 并在连接情况变化的时候可以作出一系列的操作 话不多说 上代码 function useCheckOnline navigator onLine代表当前的网络连接情况 const o
  • 第六课:MAC去中心化钱包开发之备份私钥

    一 私钥 这节课继续将注册Token后的步骤 就是备份私钥 每个公链都会有私钥 但是不尽相同 MAC底层的私钥比较多 有4个 分别是 钱包钥匙 钱包钥匙是开启MAC钱包的必备信息之一 格式为mac三个字母开头的一长串字符 创建钱包账户后会提
  • 新人小白求助大佬

    本人在进行病例对照匹配 想要匹配比是1 2 匹配条件是年龄 3岁 孕周 3周 我之前用的R语言代码是MatchIt代码 代码如下 这个代码有两个问题 一个是匹配方法 method 中没有范围的选项 只能按照 nearest 或者 exact
  • Ubuntu18.04中修改Ubuntu的外观(菜单栏放到屏幕下方)

    因为用的synergy分屏使用 所以想要将Ubuntu18 04的左侧栏放到屏幕底部 因为鼠标在点击左侧另一个电脑侧边栏的时候会不小心点到 过程 安装gnome tweak tool感觉是最方便的 直接打开命令行 先安装配置工具 sudo
  • 第三回:布局格式定方圆

    文章目录 第三回 布局格式定方圆 一 子图 1 使用 plt subplots 绘制均匀状态下的子图 2 使用 GridSpec 绘制非均匀子图 二 子图上的方法 思考题 第三回 布局格式定方圆 import numpy as np imp
  • Vuejs实践--事件绑定

    Vue中的事件绑定一般通过v on指令来绑定事件 事件绑定 v on 事件绑定的表达式的值可以是js语句 也可以是在methods选项中定义好的方法名 有参数的时候当然需要传参 在vue事件中 如果要用到事件对象e 要将e作为形参传入函数
  • SpringBoot 之 MDC 实现全链路调用日志跟踪

    文章目录 日志拦截器 修改日志格式 trackId 丢失解决 日志拦截器 import com evcas charge pile platform common annotation LogNoTrace import com evcas
  • STM32 基础系列教程 18 – IWDG

    前言 学习stm32 独立看门狗 IWDG 接口使用 学会用STM32内部独立看门狗 IWDG 实现程序异常时自复位功能 STM32F10xxx内置两个看门狗 提供了更高的安全性 时间的精确性和使用的灵活性 两个看门狗设备 独立看门狗和窗口
  • 计算机网络——SOCKET、TCP、HTTP之间的区别与联系

    文章目录 一 Socket 1 什么是socket 2 为什么需要socket 3 建立socket连接 4 socket分类 二 HTTP 基于TCP 1 HTTP的概念 2 HTTP连接的特点 2 1 连接请求 一次连接 2 2 连接请