当前位置: 首页 > news >正文

计算机网络 应用层 笔记 (电子邮件系统,SMTP,POP3,MIME,IMAP,万维网,HTTP,html)

电子邮件系统:

SMTP协议

基本概念

工作原理

连接建立:

命令交互

客户端发送命令:

服务器响应:

邮件传输:

连接关闭:

主要命令

邮件发送流程

SMTP的缺点:

MIME:

POP3协议

基本概念

工作原理

优点

缺点

IMAP协议

基本概念

工作原理

连接建立与认证:

邮件操作阶段

邮件管理操作:

连接关闭:

主要命令

特点

与 POP3 的比较

基于万维网的电子协议

万维网

基本概念

URL的一般格式:

关键技术

组成部分

HTTP

特点

具体过程:

连接方式

报文结构

 状态码:


电子邮件系统:

SMTP协议

SMTP 协议即简单邮件传输协议(Simple Mail Transfer Protocol),是互联网上用于发送电子邮件的标准协议

基本概念

SMTP 协议属于 TCP/IP 协议族,它规定了邮件发送方和接收方之间的通信规则和数据格式,确保邮件能够在不同的邮件服务器之间准确、可靠地传输。SMTP 主要负责邮件的发送和中转,而不涉及邮件的接收和存储,邮件的接收通常由 POP3 或 IMAP 协议来完成。

工作原理

连接建立:

发送方邮件服务器(客户端)首先与接收方邮件服务器(服务器端)建立 TCP 连接,默认使用端口 25。在连接建立过程中,双方会进行一些初始化操作,如确认对方的身份和能力等。

命令交互
客户端发送命令:

连接建立后,客户端通过 SMTP 命令向服务器发送邮件相关的指令,如HELO或EHLO命令用于向服务器标识自己的身份,MAIL FROM命令用于指定发件人地址,RCPT TO命令用于指定收件人地址等。

服务器响应:

服务器接收到客户端的命令后,会根据命令的执行情况返回相应的响应代码和信息。例如,250表示命令执行成功,550表示命令执行失败,如收件人地址不存在等。

邮件传输:

在完成发件人和收件人等信息的确认后,客户端使用DATA命令开始传输邮件内容。邮件内容包括邮件头和邮件体,邮件头包含了发件人、收件人、主题等信息,邮件体则是邮件的正文内容。客户端将邮件内容以特定的格式发送给服务器,服务器接收并存储邮件。

连接关闭:

邮件传输完成后,客户端发送QUIT命令请求关闭连接,服务器响应确认后,双方关闭 TCP 连接。(221)

主要命令

HELO/EHLO:用于客户端向服务器标识自己的身份,HELO是简单的标识命令,EHLO则支持扩展功能,服务器会返回其支持的功能列表。

MAIL FROM:指定邮件的发件人地址,格式为MAIL FROM:<发件人邮箱地址>。

RCPT TO:指定邮件的收件人地址,可多次使用以指定多个收件人,格式为RCPT TO:<收件人邮箱地址>。

DATA:表示开始传输邮件内容,客户端在发送DATA命令后,紧接着发送邮件的具体内容,以.<CRLF>(一个点加上回车换行)表示邮件内容结束。

QUIT:用于客户端请求关闭与服务器的连接,服务器收到该命令后,会返回确认信息并关闭连接。

邮件发送流程

客户端发起连接:发件人的邮件客户端或邮件服务器向收件人的邮件服务器发起 TCP 连接请求。

身份验证与能力协商:客户端发送HELO或EHLO命令进行身份标识,服务器返回支持的功能和参数信息,双方进行能力协商。

指定发件人和收件人:客户端使用MAIL FROM和RCPT TO命令分别指定发件人和收件人地址,服务器对收件人地址进行验证。

传输邮件内容:客户端发送DATA命令后,开始传输邮件的内容,包括邮件头和邮件体。

关闭连接:邮件传输完成后,客户端发送QUIT命令关闭连接,服务器确认后关闭连接,邮件发送过程结束。

SMTP的缺点:

1.SMTP不能传送可执行文件或者其他二进制对象

2.SMTP仅限于传送7位ASCI码不能传送其他非英语国家的文字

3.SMTP服务器会拒绝超过一定长度的邮件

MIME:

SMTP上的扩展,可以支持声音,图,视频,多国语言的传输

POP3协议

POP3 协议即邮局协议版本 3(Post Office Protocol - Version 3),是一种用于电子邮件接收的标准协议,以下是关于它的详细介绍:

基本概念

POP3 协议主要用于支持用户从邮件服务器上下载电子邮件到本地设备,以便用户在本地进行阅读、管理和存储邮件。它是基于 TCP/IP 协议族的应用层协议,默认使用 TCP 端口 110。用户的邮件客户端(如 Outlook、Foxmail 等)通过 POP3 协议与邮件服务器进行通信,获取用户的邮件。

工作原理

建立连接:用户在邮件客户端中配置好邮箱账号和密码等信息后,当需要收取邮件时,邮件客户端会向邮件服务器的 POP3 服务端口(默认 110 端口)发起 TCP 连接请求。邮件服务器接收到请求并验证用户身份后,建立连接并开始进行数据交互。

认证阶段:连接建立后,邮件客户端会向邮件服务器发送用户名和密码等认证信息,以验证用户的身份。邮件服务器对这些信息进行验证,如果验证成功,服务器会返回一个确认信息,表示用户已成功登录;如果验证失败,服务器则会返回相应的错误信息。

邮件获取阶段:认证通过后,邮件客户端可以使用 POP3 命令来获取邮件。客户端可以请求服务器列出邮件列表,查看邮件的基本信息(如邮件大小、邮件编号等),然后根据需要选择下载特定的邮件。邮件服务器会将邮件内容以文本格式发送给邮件客户端,客户端将邮件保存到本地设备上。

连接关闭:当用户完成邮件获取操作后,邮件客户端会向邮件服务器发送退出命令,请求关闭连接。邮件服务器接收到命令后,会关闭与邮件客户端的连接,结束本次邮件获取过程。

(下载并保留,下载并删除两个工作方式)

优点

简单易用:POP3 协议相对简单,易于理解和实现,用户只需要在邮件客户端中进行简单的配置,就可以方便地从邮件服务器下载邮件,在本地进行阅读和管理。

离线阅读:用户可以将邮件下载到本地设备,即使在没有网络连接的情况下,也可以随时阅读已下载的邮件,提高了邮件使用的便利性。

缺点

邮件管理受限:POP3 协议主要侧重于邮件的下载,对邮件在服务器端的管理功能有限。例如,用户在本地客户端对邮件进行删除、移动等操作后,这些操作通常不会同步到服务器端,可能导致服务器上的邮件与本地客户端的邮件状态不一致。

不适合多设备同步:如果用户在多个设备上使用 POP3 协议收取邮件,由于邮件下载后通常会从服务器删除(默认设置),可能会导致不同设备之间的邮件数据不一致,给用户带来不便。

IMAP协议

互联网消息访问协议(Internet Message Access Protocol),是用于邮件接收和管理的重要协议

基本概念

IMAP 协议允许用户的邮件客户端与邮件服务器进行交互,实现对邮件的远程管理和访问。与 POP3 协议不同,IMAP 并不将邮件完全下载到本地设备,而是允许用户在服务器上直接操作邮件,如查看、移动、删除等,邮件的副本仍然保留在服务器上,方便用户在不同设备上同步访问邮件。IMAP 基于 TCP/IP 协议,默认使用 TCP 端口 143。

工作原理

连接建立与认证:

用户在邮件客户端输入邮箱账号和密码等信息后,邮件客户端向邮件服务器的 IMAP 端口(默认 143 端口)发起 TCP 连接请求。连接成功后,客户端向服务器发送认证信息进行身份验证,服务器验证通过后,建立起有效的连接。

邮件操作阶段

邮件列表获取:客户端可以发送命令请求服务器返回邮件文件夹中的邮件列表,服务器会返回邮件的基本信息,如邮件编号、主题、发件人、收件日期等。

邮件内容获取:当用户需要查看某封邮件的具体内容时,客户端发送相应命令,服务器根据请求将邮件内容发送给客户端。客户端可以按需获取邮件的部分内容,如只获取邮件头或特定大小的邮件体。

邮件管理操作:

客户端可以通过 IMAP 命令在服务器上对邮件进行各种管理操作,如将邮件移动到不同的文件夹、标记邮件为已读或未读、删除邮件等。服务器会实时更新邮件状态,并将操作结果反馈给客户端。

连接关闭:

当用户完成邮件操作后,客户端发送关闭连接的命令,服务器响应后关闭连接。在连接关闭前,服务器会确保所有的操作都已完成并进行相应的保存和更新。

主要命令

LOGIN:用于客户端向服务器发送用户名和密码进行身份认证,格式为LOGIN <用户名> <密码>。

LIST:用于请求服务器列出指定邮箱中的文件夹列表,格式为LIST <邮箱名>,服务器会返回文件夹的名称和属性等信息。

SELECT:用于选择要操作的邮件文件夹,格式为SELECT <文件夹名>,客户端选择文件夹后,才能对该文件夹中的邮件进行操作。

FETCH:用于从服务器获取邮件的内容或特定信息,格式为FETCH <邮件编号> <数据项>,可以获取邮件的正文、邮件头、附件等内容,<数据项>指定了要获取的具体信息。

STORE:用于对邮件进行标记或修改操作,如标记邮件为已读、未读、删除等,格式为STORE <邮件编号> <操作>,例如STORE 1 +FLAGS (\Seen)将编号为 1 的邮件标记为已读。

CREATE:用于在服务器上创建新的邮件文件夹,格式为CREATE <文件夹名>。

DELETE:用于删除服务器上的邮件文件夹,格式为DELETE <文件夹名>。

特点

多设备同步:IMAP 协议的一个重要特点是支持多设备同步。用户在不同设备上对邮件的操作,如阅读、标记、移动等,都会实时同步到服务器上,使得用户在任何设备上访问邮件时,都能看到一致的邮件状态。

在线管理:用户可以直接在服务器上对邮件进行各种管理操作,无需将邮件下载到本地再进行处理。这对于处理大量邮件或需要在不同设备上保持邮件状态一致的用户非常方便。

灵活获取邮件内容:客户端可以根据需要选择性地获取邮件的部分内容,而不是像 POP3 那样需要一次性下载整个邮件。这样可以节省网络带宽,提高邮件访问效率,尤其是在处理包含大附件的邮件时更加高效。

与 POP3 的比较

数据存储与管理:POP3 通常会将邮件下载到本地设备,服务器上的邮件可能会被删除,主要在本地进行邮件管理;IMAP 则将邮件保留在服务器上,用户在服务器端进行邮件管理,本地只保存邮件的缓存,方便多设备同步。

多设备使用体验:POP3 在多设备使用时,由于邮件下载后可能从服务器删除,容易导致各设备之间邮件数据不一致;IMAP 则能很好地支持多设备同步,用户在任何设备上的操作都能实时更新到服务器,保证各设备邮件状态一致。

网络依赖程度:POP3 下载邮件后,可在离线状态下进行大部分操作,对网络依赖较小;IMAP 主要在服务器上操作邮件,大部分操作需要与服务器交互,对网络依赖较大,但在有网络连接时能提供更实时和一致的邮件管理体验。

基于万维网的电子协议

万维网

万维网(World Wide Web,简称 WWW),常被称为 “Web”“3W”,是一个由许多互相链接的超文本组成的系统,通过互联网访问,以下是关于它的详细介绍:

基本概念

万维网是一种基于超文本htmlHTTP 协议分布式信息系统,它将全球范围内的信息资源以网页的形式呈现给用户。用户可以通过浏览器,使用统一资源定位符(URL)来访问不同的网页,这些网页可以包含文本、图像、音频、视频等多种类型的信息,并且通过超链接相互连接,使用户能够方便地在不同的信息之间进行跳转和浏览。

URL的一般格式:

关键技术

超文本标记语言(HTML):用于创建网页的标准标记语言,通过各种标签来定义网页的结构和内容,如标题、段落、图片、链接等。

级联样式表(CSS):用于控制网页的样式和布局,包括字体、颜色、背景、排版等方面,使网页更加美观和易读。

JavaScript:一种脚本语言,主要用于为网页添加动态效果和交互性,如实现菜单的展开与收缩、表单验证、动画效果等。

HTTP 协议:前面提到过,它是客户端(如浏览器)与服务器之间进行数据传输的协议,规定了请求和响应的格式与规则。

服务器技术:包括 Web 服务器软件,如 Apache、Nginx 等,用于接收和处理客户端的请求,并返回相应的网页内容;还有应用服务器,用于运行动态网页程序和处理业务逻辑,如 Tomcat 等。

组成部分

网页:万维网的基本信息单元,由 HTML、CSS、JavaScript 等技术构建,包含各种文字、图片、音频、视频等多媒体信息,以及指向其他网页的超链接。

网站:由多个相关的网页组成,通常具有统一的主题和风格,由网站管理员进行管理和维护,如新浪、百度等网站。

Web 服务器:存储和管理网页等资源的计算机设备,接收来自客户端的请求,并根据请求发送相应的网页内容。

浏览器:用户访问万维网的客户端软件,如 Chrome、Firefox、Safari、Edge 等,它能够解析 HTML、CSS 和 JavaScript 代码,将网页内容以可视化的形式呈现给用户,并提供交互功能,让用户可以通过点击链接、填写表单等方式与网页进行交互。

HTTP

超文本传输协议(HyperText Transfer Protocol),是互联网上信息传递与共享的基础协议之一

定义:HTTP 是一种用于分布式、协作式和超媒体信息系统的应用层协议,它规定了客户端和服务器之间数据传输的格式和规则,使得客户端能够向服务器请求获取各种类型的资源,如 HTML 页面、图片、视频、音频等,服务器则根据请求返回相应的资源内容。

特点

简单快速:客户端发送请求,服务器响应请求,这种请求 - 响应模式简单直接,易于理解和实现。

灵活:可以传输多种类型的数据,通过设置不同的 MIME 类型来标识数据格式,如 text/html 表示 HTML 文本,image/jpeg 表示 JPEG 图片等。

无连接:每一次请求 - 响应完成后,连接即结束,下次请求需要重新建立连接。这种方式可以节省连接资源,提高系统的并发处理能力。

无状态:服务器不会在不同请求之间记住客户端的状态信息,每个请求都是独立的,服务器只根据当前接收到的请求进行处理并返回响应。(cookie是一个文本文件,用于记录访问状态的)

具体过程:

1.浏览器分析URL

2.浏览器向DNS请求解析IP地址

3.DNS解析出IP地址

4.浏览器与服务器建立TCP连接

5.浏览器发出取文件命令

6.服务器响应

7.释放TCP连接

8.浏览器显示

连接方式

非持久连接下次的连接需要再次进行3次握手

报文结构

eg请求报文:

 状态码:

相关文章:

计算机网络 应用层 笔记 (电子邮件系统,SMTP,POP3,MIME,IMAP,万维网,HTTP,html)

电子邮件系统&#xff1a; SMTP协议 基本概念 工作原理 连接建立&#xff1a; 命令交互 客户端发送命令&#xff1a; 服务器响应&#xff1a; 邮件传输&#xff1a; 连接关闭&#xff1a; 主要命令 邮件发送流程 SMTP的缺点: MIME&#xff1a; POP3协议 基本概念…...

【视频+图文详解】HTML基础3-html常用标签

图文教程 html常用标签 常用标签 1. 文档结构 <!DOCTYPE html>&#xff1a;声明HTML文档类型。<html>&#xff1a;定义HTML文档的根元素。<head>&#xff1a;定义文档头部&#xff0c;包含元数据。<title>&#xff1a;设置网页标题&#xff0c;浏览…...

FreeRTOS学习 --- 消息队列

队列简介 队列是任务到任务、任务到中断、中断到任务数据交流的一种机制&#xff08;消息传递&#xff09; 全局变量的弊端&#xff1a;数据无保护&#xff0c;导致数据不安全&#xff0c;当多个任务同时对该变量操作时&#xff0c;数据易受损 使用队列的情况如下&#xff1a;…...

PHP If...Else 语句详解

PHP If...Else 语句详解 引言 在PHP编程中&#xff0c;if...else语句是流程控制的重要组成部分&#xff0c;它允许程序根据条件判断执行不同的代码块。本文将详细解析PHP中的if...else语句&#xff0c;包括其基本用法、高级技巧以及注意事项。 一、基本用法 if...else语句的…...

pytorch使用SVM实现文本分类

人工智能例子汇总&#xff1a;AI常见的算法和例子-CSDN博客 完整代码&#xff1a; import torch import torch.nn as nn import torch.optim as optim import jieba import numpy as np from sklearn.model_selection import train_test_split from sklearn.feature_extract…...

安卓(android)读取手机通讯录【Android移动开发基础案例教程(第2版)黑马程序员】

一、实验目的&#xff08;如果代码有错漏&#xff0c;可在代码地址查看&#xff09; 1.熟悉内容提供者(Content Provider)的概念和作用。 2.掌握内容提供者的创建和使用方法。 4.掌握内容URI的结构和用途。 二、实验条件 1.熟悉内容提供者的工作原理。 2.掌握内容提供者访问其…...

【Qt】常用的容器

Qt提供了多个基于模板的容器类&#xff0c;这些容器类可用于存储指定类型的数据项。例如常用的字符串列表类 QStringList 可用来操作一个 QList<QString>列表。 Qt的容器类比标准模板库(standard template library&#xff0c;STL)中的容器类更轻巧、使用更安全且更易于使…...

基于UKF-IMM无迹卡尔曼滤波与交互式多模型的轨迹跟踪算法matlab仿真,对比EKF-IMM和UKF

目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.本算法原理 5.完整程序 1.程序功能描述 基于UKF-IMM无迹卡尔曼滤波与交互式多模型的轨迹跟踪算法matlab仿真,对比EKF-IMM和UKF。 2.测试软件版本以及运行结果展示 MATLAB2022A版本运行 3.核心程序 .…...

分布式事务组件Seata简介与使用,搭配Nacos统一管理服务端和客户端配置

文章目录 一. Seata简介二. 官方文档三. Seata分布式事务代码实现0. 环境简介1. 添加undo_log表2. 添加依赖3. 添加配置4. 开启Seata事务管理5. 启动演示 四. Seata Server配置Nacos1. 修改配置类型2. 创建Nacos配置 五. Seata Client配置Nacos1. 增加Seata关联Nacos的配置2. 在…...

JavaScript常用的内置构造函数

JavaScript作为一种广泛应用的编程语言&#xff0c;提供了丰富的内置构造函数&#xff0c;帮助开发者处理不同类型的数据和操作。这些内置构造函数在创建和操作对象时非常有用。本文将详细介绍JavaScript中常用的内置构造函数及其用途。 常用内置构造函数概述 1. Object Obj…...

25寒假算法刷题 | Day1 | LeetCode 240. 搜索二维矩阵 II,148. 排序链表

目录 240. 搜索二维矩阵 II题目描述题解 148. 排序链表题目描述题解 240. 搜索二维矩阵 II 点此跳转题目链接 题目描述 编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 target 。该矩阵具有以下特性&#xff1a; 每行的元素从左到右升序排列。每列的元素从上到…...

MQTT知识

MQTT协议 MQTT 是一种基于发布/订阅模式的轻量级消息传输协议&#xff0c;专门针对低带宽和不稳定网络环境的物联网应用而设计&#xff0c;可以用极少的代码为联网设备提供实时可靠的消息服务。MQTT 协议广泛应用于物联网、移动互联网、智能硬件、车联网、智慧城市、远程医疗、…...

【机器学习与数据挖掘实战】案例11:基于灰色预测和SVR的企业所得税预测分析

【作者主页】Francek Chen 【专栏介绍】 ⌈ ⌈ ⌈机器学习与数据挖掘实战 ⌋ ⌋ ⌋ 机器学习是人工智能的一个分支,专注于让计算机系统通过数据学习和改进。它利用统计和计算方法,使模型能够从数据中自动提取特征并做出预测或决策。数据挖掘则是从大型数据集中发现模式、关联…...

新一代搜索引擎,是 ES 的15倍?

Manticore Search介绍 Manticore Search 是一个使用 C 开发的高性能搜索引擎&#xff0c;创建于 2017 年&#xff0c;其前身是 Sphinx Search 。Manticore Search 充分利用了 Sphinx&#xff0c;显着改进了它的功能&#xff0c;修复了数百个错误&#xff0c;几乎完全重写了代码…...

使用 Context API 管理临时状态,避免 Redux/Zustand 的持久化陷阱

在开发 React Native 应用时&#xff0c;我们经常需要管理全局状态&#xff0c;比如用户信息、主题设置、网络状态等。而对于某些临时状态&#xff0c;例如 数据同步进行中的状态 (isSyncing)&#xff0c;我们应该选择什么方式来管理它&#xff1f; 在项目开发过程中&#xff…...

PyTorch框架——基于深度学习YOLOv8神经网络学生课堂行为检测识别系统

基于YOLOv8深度学习的学生课堂行为检测识别系统&#xff0c;其能识别三种学生课堂行为&#xff1a;names: [举手, 读书, 写字] 具体图片见如下&#xff1a; 第一步&#xff1a;YOLOv8介绍 YOLOv8 是 ultralytics 公司在 2023 年 1月 10 号开源的 YOLOv5 的下一个重大更新版本…...

word2vec 实战应用介绍

Word2Vec 是一种由 Google 在 2013 年推出的重要词嵌入模型,通过将单词映射为低维向量,实现了对自然语言处理任务的高效支持。其核心思想是利用深度学习技术,通过训练大量文本数据,将单词表示为稠密的向量形式,从而捕捉单词之间的语义和语法关系。以下是关于 Word2Vec 实战…...

C# 操作符重载对象详解

.NET学习资料 .NET学习资料 .NET学习资料 一、操作符重载的概念 在 C# 中&#xff0c;操作符重载允许我们为自定义的类或结构体定义操作符的行为。通常&#xff0c;我们熟悉的操作符&#xff0c;如加法&#xff08;&#xff09;、减法&#xff08;-&#xff09;、乘法&#…...

python学opencv|读取图像(五十四)使用cv2.blur()函数实现图像像素均值处理

【1】引言 前序学习进程中&#xff0c;对图像的操作均基于各个像素点上的BGR值不同而展开。 对于彩色图像&#xff0c;每个像素点上的BGR值为三个整数&#xff0c;因为是三通道图像&#xff1b;对于灰度图像&#xff0c;各个像素上的BGR值是一个整数&#xff0c;因为这是单通…...

CNN的各种知识点(四): 非极大值抑制(Non-Maximum Suppression, NMS)

非极大值抑制&#xff08;Non-Maximum Suppression, NMS&#xff09; 1. 非极大值抑制&#xff08;Non-Maximum Suppression, NMS&#xff09;概念&#xff1a;算法步骤&#xff1a;具体例子&#xff1a;PyTorch实现&#xff1a; 总结&#xff1a; 1. 非极大值抑制&#xff08;…...

虚幻基础16:locomotion direction

locomotion locomotion&#xff1a;角色运动系统的总称&#xff1a;包含移动、奔跑、跳跃、转向等。 locomotion direction 玩家输入 玩家输入&#xff1a;通常代表玩家想要的移动方向。 direction 可以计算当前朝向与移动方向的Δ。从而实现朝向与移动(玩家输入)方向的分…...

C++游戏开发实战:从引擎架构到物理碰撞

&#x1f4dd;个人主页&#x1f339;&#xff1a;一ge科研小菜鸡-CSDN博客 &#x1f339;&#x1f339;期待您的关注 &#x1f339;&#x1f339; 1. 引言 C 是游戏开发中最受欢迎的编程语言之一&#xff0c;因其高性能、低延迟和强大的底层控制能力&#xff0c;被广泛用于游戏…...

代理模式——C++实现

目录 1. 代理模式简介 2. 代码示例 1. 代理模式简介 代理模式是一种行为型模式。 代理模式的定义&#xff1a;由于某些原因需要给某对象提供一个代理以控制该对象的访问。这时&#xff0c;访问对象不适合或者不能直接访问引用目标对象&#xff0c;代理对象作为访问对象和目标…...

什么情况下,C#需要手动进行资源分配和释放?什么又是非托管资源?

扩展&#xff1a;如何使用C#的using语句释放资源&#xff1f;什么是IDisposable接口&#xff1f;与垃圾回收有什么关系&#xff1f;-CSDN博客 托管资源的回收有GC自动触发&#xff0c;而非托管资源需要手动释放。 在 C# 中&#xff0c;非托管资源是指那些不由 CLR&#xff08;…...

LeetCode 2909. 元素和最小的山形三元组 II

**### LeetCode 2909. 元素和最小的山形三元组 II 问题描述 给定一个下标从 0 开始的整数数组 nums&#xff0c;我们需要找到一个“山形三元组”&#xff08;i, j, k&#xff09;满足以下条件&#xff1a; i < j < knums[i] < nums[j] 且 nums[k] < nums[j] 并…...

搬迁至bilibili声明

我将搬迁到bilibili ,用户名&#xff1a;北苏清风 在这个用户名上的文章部分将出自csdn的这个账号&#xff0c;均属于本人原创...

【周易哲学】生辰八字入门讲解(八)

&#x1f60a;你好&#xff0c;我是小航&#xff0c;一个正在变秃、变强的文艺倾年。 &#x1f514;本文讲解【周易哲学】生辰八字入门讲解&#xff0c;期待与你一同探索、学习、进步&#xff0c;一起卷起来叭&#xff01; 目录 一、六亲女命六亲星六亲宫位相互关系 男命六亲星…...

复制粘贴小工具——Ditto

在日常工作中&#xff0c;复制粘贴是常见的操作&#xff0c;但Windows系统自带的剪贴板功能较为有限&#xff0c;只能保存最近一次的复制记录&#xff0c;这对于需要频繁复制粘贴的用户来说不太方便。今天&#xff0c;我们介绍一款开源、免费且功能强大的剪贴板增强工具——Dit…...

3、从langchain到rag

文章目录 本文介绍向量和向量数据库向量向量数据库 索引开始动手实现rag加载文档数据并建立索引将向量存放到向量数据库中检索生成构成一条链 本文介绍 从本节开始&#xff0c;有了上一节的langchain基础学习&#xff0c;接下来使用langchain实现一个rag应用&#xff0c;并稍微…...

稀疏进化训练:机器学习优化算法中的高效解决方案

稀疏进化训练&#xff1a;机器学习优化算法中的高效解决方案 稀疏进化训练&#xff1a;机器学习优化算法中的高效解决方案引言第一部分&#xff1a;背景与动机1.1 传统优化算法的局限性1.2 进化策略的优势1.3 稀疏性的重要性 第二部分&#xff1a;稀疏进化训练的核心思想2.1 稀…...