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

(一)HTTP协议 :请求与响应

前言

爬虫需要基础知识,HTTP协议只是个开始,除此之外还有很多,我们慢慢来记录。

今天的HTTP协议,会有助于我们更好的了解网络。

一、什么是HTTP协议

(1)定义

HTTP(超文本传输协议,HyperText Transfer Protocol)是用于在网络上进行数据通信的协议,尤其是用于网页的传输。

简单来说,就是专门把超文本数据从网络上传输到本地浏览器上的一个协议

我们也经常见它,比如网站前面的前缀:

当然,上图有些不太正确,但 HTTPS 其实是HTTP的升级版,二者其实差不太多。

(2)HTTPS

那么HTTPS到底有什么不同呢?

HTTPS的全称是Hypertext Transfer Protocol Secure。相较于HTTP多了一个Secure

所以我们应该知道,哪里升级了。

简单来说,就是在HTTP的基础上通过传输加密和身份认证保证了传输过程的安全性

Tips:HTTPS 主要由两部分组成:HTTP + SSL / TLS,也就是在 HTTP 上又加了一层处理加密信息的模块。服务端和客户端的信息传输都会通过 TLS 进行加密,所以传输的数据都是加密后的数据。(了解即可

(3)URI和URL

还有些专业术语,诸如URI和URL :

  • URI(统一资源标识符):用于标识资源的字符串。
  • URL(统一资源定位符):一种特定类型的URI,用于定位资源并提供如何访问这些资源的信息。
  • URN:统一资源名称

顾名思义,URI让我们可以唯一标识一个资源。URL则让我们可以去定位一个资源。

比如一个网址https://www.example.com

我们可以把这整个链接叫做URI,因为这个网址标识了一个资源。

而这个链接,也叫做URL,因为这个网址的链接也同样定位了一个资源。

那他们怎么区分呢? 

URI包括了URL,因为URI=URL和URN

比如,一本书的编号111,这个编号就是URN。

所以该编号也可以叫做URI,因为它同样标识了一个资源,但是它不能叫做URL了,因为该编号并没有定位这个资源,我们只知道它叫什么,却不知道去哪里可以找到他。

二、HTTP请求过程

(1)请求过程

我们在网页最上面的导航栏上输入网址,按下回车,然后出现一个新网页。

这个过程就是浏览器向某网站发送了一个请求,然后网站进行处理,最后网站回馈一个响应,浏览器解析后展现出来。

(2)相关名词介绍

(注:以下名词了解即可) 

为了更好的说明该过程,我们可以鼠标右键检查功能来具体显示一下请求和响应:

然后切换到Network面板,再刷新一下网页:

即可看到很多行的东西,每一行就代表一次  请求-响应  过程

我们仔细观察这个界面的各列:

其中,各列含义如下

  • Name:请求界面的名称
  • Status:响应状态码,通过状态码显示,可以判定响应是否正常。
  • Type:请求文档的类型。
  • Initiator:请求源,用来标记是哪个对象或进程发起的请求。
  • Size:请求资源大小(如果是缓存中提取的资源,该列显示from cache)
  • Time:从发起请求到获得响应所花总时间。
  • Waterfall:网络请求可视化瀑布流。
  • (有时会有Protocol:请求协议类型,http1.1代表HTTP1.1版本,h2代表HTTP2.0版本)

若单击某列,则会显示更详细的信息:

在General部分:

  • Request URL :请求的URL
  • Request Method:请求方法
  • Status Code:响应状态码
  • Remote Address:远程服务器的地址和端口
  • Referre Policy:为判别策略
  • Response Headers:响应头
  • Request Headers:请求头

以上名词可能有些说的不太清楚,现在我们具体来看一看各部分,到底是干什么的

三、请求部分

请求,即Request。

由用户发往服务器的信息。包括四大部分:请求方法、请求网址、请求头、请求体。 

(1)请求方法

请求方法,客户端请求服务器时的方式

常见的有两种:GET请求、POST请求

比如:

GET请求

请求获取指定资源,如请求页面返回内容

当我们在浏览器最上面输入网址并按下回车,这就是发起了GET请求。

POST请求:

向指定资源提交数据,通常用于表单提交或者上传文件。

当我们登陆网站,输入账号密码后,点击提交后,这就是发起了POST请求。

那么二者有什么具体区别呢?

  1. GET请求的参数包括在URL,POST请求的数据包括在请求体中。
    所以如果打开某网站某板块某界面的某图片后,这时我们会在上面的网址中看到该图片的路径,这就是GET请求该图片的参数
  2. GET请求提交数据最大1024字节,POST请求没有限制。

所以综上,当我们提交账号密码时,最好选择POST,否则GET会将密码显示在网址中暴露哦~


当然除此之外,还有很多请求,不过并不常用,汇总如下:

  • GET:请求获取指定资源。GET 请求不应包含请求体,且一般用于获取数据。
  • POST:向指定资源提交数据,通常用于表单提交或者上传文件。POST 请求可以包含请求体,用于传送数据。
  • PUT:向指定资源上传数据,通常用于更新资源的状态。PUT 请求一般是幂等的,即多次相同的请求会得到相同的结果。
  • DELETE:请求删除指定资源。
  • PATCH:部分更新指定资源的数据。与 PUT 的区别是,PATCH 只更新资源的一部分,而 PUT 会替换整个资源。
  • HEAD:类似 GET 请求,但只获取响应的头部信息,不返回实际的资源数据。
  • OPTIONS:请求服务器,询问支持哪些 HTTP 方法。常用于跨域请求中的预检请求。

(2)请求网址

网址格式如下:

协议://主机名:端口号/路径?查询字符串#片段标识符

说明:

  • 协议(Scheme):指定访问资源所使用的协议。常见的协议包括:
    http 或 https(超文本传输协议)、
    ftp(文件传输协议)、
    mailto(用于电子邮件地址)、
    file(本地文件)
  • 主机名(Host):指定资源所在的服务器的域名或 IP 地址。
    通常为一个域名,如 www.example.com
    或者是 IP 地址,如 192.168.1.1
  • 端口号(Port)(可写可不写):指定服务器的端口,通常省略。
    默认情况下:http 默认端口为 80、https 默认端口为 443。
    如果指定了非默认端口,则需要在主机名后加上端口号,用冒号分隔,如 www.example.com:8080
  • 路径(Path):指定请求资源在服务器上的位置。
    例如,/products/123 表示访问 /products/123 这个路径的资源。
  • 查询字符串(Query)(可写可不写):以 ? 开头,包含一个或多个键值对,用于传递参数。
    例如,?id=123&name=abc,查询字符串由参数名和值组成,多个参数用 & 分隔。
  • 片段标识符(Fragment)(可写可不写):以 # 开头,指向文档中的一个特定位置。
    用于指定页面内的某个部分。例如,#section2 指向页面的第二个部分。

举个例子:

https://www.example.com:8080/products/123?id=456&color=red#review

解释: 

  • 协议:https
  • 主机名:www.example.com
  • 端口号:8080
  • 路径:/products/123
  • 查询字符串:?id=456&color=red
  • 片段标识符:#review

(3)请求头

请求头是 HTTP 请求中的一部分,它包含了关于客户端、请求以及数据的附加信息。

客户端通过它向服务器传递元数据,帮助服务器理解请求的内容、用户的偏好、客户端环境等。

举个例子:

请求头就像你在向别人请求东西时提供的一些附加信息

假设你在网上买东西,除了告诉商家你想买的产品,还会提供一些其他信息,比如:

你用的是什么设备(是手机还是电脑)

你能接受的商品类型(比如希望商品图片清晰,或者只想看某种品牌的商品)

这些附加信息就像是请求头里的内容,它们帮助商家(服务器)了解你具体的需求,确保你能收到最合适的产品。

所以你要访问一个网页,你的请求头可能包含以下信息:

(注:了解即可) 

1. Host

  • 指定请求的服务器域名或 IP 地址。从 HTTP/1.1 版本开始,这是必需的头部字段。

  • 示例:Host: www.example.com

2. User-Agent

  • 简称UA。表示发送请求的客户端软件类型(如浏览器、操作系统等)。爬虫时加上此部分可以伪装成浏览器。

  • 示例:User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36

3. Accept

  • 指定客户端能够处理的响应内容类型。通常用于指定请求的数据格式

  • 示例:Accept: text/html, application/xhtml+xml, application/xml;q=0.9, image/webp,*/*;q=0.8

4. Accept-Language

  • 告诉服务器客户端能够理解的语言。例如,可以告诉服务器希望获取中文或英文的内容。

  • 示例:Accept-Language: en-US,en;q=0.5

5. Content-Type

  • 仅在请求体中有数据时使用,指定请求体的媒体类型。例如,表单提交时,数据的格式是 application/x-www-form-urlencoded,上传文件时是 multipart/form-data

  • 示例:Content-Type: application/json

6. Authorization

  • 用于身份验证,携带认证信息,如令牌或基本认证信息。常用于需要用户验证的资源。

  • 示例:Authorization: Bearer <token>

  • 客户端向服务器发送的 Cookie 信息,服务器根据该信息识别用户状态(如登录状态)。

  • 示例:Cookie: sessionid=abc123; user=JohnDoe

8. Accept-Encoding

  • 告诉服务器客户端支持的编码方式,通常用于压缩响应体。

  • 示例:Accept-Encoding: gzip, deflate, br

9. Connection

  • 表示是否保持持久连接,决定在请求完成后是否保持与服务器的连接。

  • 示例:Connection: keep-alive

10. Referer

  • 表示来自哪个 URL 的请求,通常用于了解用户访问的来源页面。

  • 示例:Referer: https://www.example.com/previous-page

(4)请求体

请求体是 HTTP 请求中的一部分,主要用于携带客户端发送给服务器的实际数据内容。

可以理解为你在向服务器请求某项服务时,所附带的具体信息或者数据

举个例子:

如果你填写了一个网上表单,提交了你的个人信息(比如名字、地址、电子邮件等),这些信息就是通过请求体发送到服务器的。

(Tips:对于请求体来说,一般是POST请求的表单数据,对于GET请求,请求体为空)


对于请求头请求体的区别?

  • 请求头
    包含一些附加信息(比如浏览器类型、请求语言、是否有登录状态等)
    帮助服务器理解如何处理请求。
  • 请求体
    包含实际的数据内容,是请求的核心部分
    比如你提交的表单数据、上传的文件等。

四、响应部分

响应,即Response。

由服务器给用户的信息。包括三部分:响应状态码、响应头、响应体。

(1)响应状态码

就像前文所说,这就是根据给出的数字,来判定响应是否正常。

比如,200表示正常、404表示找不到等,都是常见状态码。

下面汇总了常见的状态码及错误原因:

1. 1xx:信息性状态码

这些状态码表示请求已被接收,正在继续处理。

  • 100 Continue:表示客户端可以继续发送请求的其余部分(通常用于大文件上传时,客户端先发送请求头,服务器返回 100 状态码,客户端再发送请求体)。

2. 2xx:成功状态码

这些状态码表示请求已成功被处理。

  • 200 OK:请求成功,服务器返回请求的资源。

  • 201 Created:请求成功,服务器创建了新的资源(通常用于 POST 请求)。

  • 204 No Content:请求成功,但服务器没有返回任何内容(常见于删除操作)。

3. 3xx:重定向状态码

这些状态码表示请求需要进一步的操作才能完成(通常是页面重定向)。

  • 301 Moved Permanently:请求的资源已被永久移到新的位置,响应中会带有新的 URL。

  • 302 Found:请求的资源临时移动到其他位置,客户端会按照新 URL 继续请求。

  • 304 Not Modified:资源未修改,客户端可以使用缓存的副本。

4. 4xx:客户端错误状态码

这些状态码表示请求有错误,客户端需要修正请求后再试。

  • 400 Bad Request:请求无效,服务器无法理解请求。

  • 401 Unauthorized:请求未授权,通常需要提供身份验证(如登录)。

  • 403 Forbidden:服务器拒绝请求,即使用户已认证。

  • 404 Not Found:请求的资源不存在或无法找到。

  • 405 Method Not Allowed:请求方法不被允许(例如,服务器只允许 GET 请求,但客户端使用了 POST 请求)。

5. 5xx:服务器错误状态码

这些状态码表示服务器未能完成有效请求,通常是服务器本身的问题。

  • 500 Internal Server Error:服务器遇到错误,无法完成请求。

  • 502 Bad Gateway:服务器作为网关或代理时,收到来自上游服务器的无效响应。

  • 503 Service Unavailable:服务器暂时无法处理请求,通常是因为服务器超负荷或正在维护。

  • 504 Gateway Timeout:服务器作为网关或代理时,未能在规定时间内从上游服务器获取响应。

(2)响应头

响应头是服务器在响应客户端请求时,附加在响应消息中的一些信息。

这些信息主要用于描述服务器的处理结果、返回的数据类型、缓存策略等。

可以理解为服务器对客户端请求的“回馈”信息,告诉客户端服务器的状态、资源类型等。

下面为常用响应头:

  1. Content-Type:指定响应体的内容类型(即数据的格式)。例如:

    • Content-Type: text/html:返回的是 HTML 内容。
    • Content-Type: application/json:返回的是 JSON 格式数据。
    • Content-Type: image/png:返回的是 PNG 图片。
  2. Content-Length:表示响应体的大小,以字节为单位

  3. Date:返回响应的时间戳,表示服务器响应的日期和时间

  4. Server:表示服务器的类型和版本

  5. Set-Cookie:服务器向客户端发送的 cookie,用于保存客户端的状态信息。

(3)响应体

响应体是服务器在响应客户端请求时,返回给客户端的实际数据内容。

举个例子:

比如你请求一个网页时,响应体就是返回的 HTML 内容;你请求某个数据接口时,响应体就是返回的 JSON 数据。

如下图所示:

当我们打开Preview中,看到的蓝框内的内容,就是响应体。

在爬虫时,我们要做的,就是解析它!!!

它的常见内容有:

  1. HTML 页面:如果你请求一个网页,响应体通常是该网页的 HTML 内容。
    例如,浏览器向服务器请求 https://example.com,服务器返回一个 HTML 页面,响应体就是网页的 HTML 代码。

  2. JSON 数据:在许多现代 Web 应用中,通常使用 JSON 格式。
    例如,发送一个 GET 请求到一个数据接口,返回的响应体是 JSON 数据:
    { "name": "John Doe", "age": 30 }

  3. 图片或文件:如果请求的是一个文件(如图片、视频等),响应体包含文件的内容。
    例如,浏览器请求一个 PNG 图片,服务器返回响应体,其中包含该图片的二进制数据。

  4. 文本内容:如果请求的是纯文本数据,响应体可能直接是一些文本内容。

相关文章:

(一)HTTP协议 :请求与响应

前言 爬虫需要基础知识&#xff0c;HTTP协议只是个开始&#xff0c;除此之外还有很多&#xff0c;我们慢慢来记录。 今天的HTTP协议&#xff0c;会有助于我们更好的了解网络。 一、什么是HTTP协议 &#xff08;1&#xff09;定义 HTTP&#xff08;超文本传输协议&#xff…...

微信阅读网站小程序的设计与实现(LW+源码+讲解)

专注于大学生项目实战开发,讲解,毕业答疑辅导&#xff0c;欢迎高校老师/同行前辈交流合作✌。 技术范围&#xff1a;SpringBoot、Vue、SSM、HLMT、小程序、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容&#xff1a;…...

资源管理输入、工具与技术、输出

过程输入工具与技术输出规划资源管理1.项目章程2.项目管理计划质量管理计划、范围基准3.项目文件项目进度计划、需求文件、风险登记册、干系人登记册4.事业环境因素5.组织过程资产1.专家判断2.数据表现层级型、矩阵型、文本型3.组织理论4.会议1.资源管理计划2.团队章程3.项目文…...

【JavaWeb学习Day13】

Tlias智能学习系统 需求&#xff1a; 部门管理&#xff1a;查询、新增、修改、删除 员工管理&#xff1a;查询、新增、修改、删除和文件上传 报表统计 登录认证 日志管理 班级、学员管理&#xff08;实战内容&#xff09; 部门管理&#xff1a; 01准备工作 开发规范-…...

mapStruct 使用踩坑指南

一、缓存机制 经常因为变更字段(通常会这样)&#xff0c;导致启动失败。需要清理生成的文件。 /Users/uzong/IdeaProjects/uzong-crm/uzong-crm-manager/src/main/java/com/uzong/crm/manager/GroupManager.java:14:67 java: 找不到符号符号: 方法 getId()位置: 类型为com.u…...

Hive详细讲解-概述与环境搭建

文章目录 1.Hive概述1.2.Hive架构原理1.3Driver 2.Hive最小化模式安装部署3.生产环境hive安装部署4.将hive的元数据存储到Mysql5.元数据库概述6.Hive服务的部署6.1HiveServer26.2Metastore 7.HiveServer2使用7.1Metastore嵌入模式配置7.2Metastore独立模式配置* 8.hive常用的参…...

【算法】数论基础——约数个数定理、约数和定理 python

目录 前置知识约数约数个数定理约数和定理实战演练总结 前置知识 需要掌握&#xff1a;唯一分解定理&#xff08;算术基本定理&#xff09; 约数 约数&#xff0c;即因数&#xff0c;定义为&#xff1a; 如果一个整数a可以被另一个整数b整除&#xff08;即 a mod b 0),那么b就…...

【阅读笔记】基于整数+分数微分的清晰度评价算子

本文介绍的是一种新的清晰度评价算子&#xff0c;整数微分算子分数微分算子 一、概述 目前在数字图像清晰度评价函数中常用的评价函数包括三类&#xff1a;灰度梯度评价函数、频域函数和统计学函数&#xff0c;其中灰度梯度评价函数具有计算简单&#xff0c;评价效果好等优点…...

【技术】TensorRT 10.7 安装指南(Ubuntu22.04)

原文链接&#xff1a;https://mengwoods.github.io/post/tech/008-tensorrt-installation/ 本文安装的版本如下&#xff1a; Ubuntu 22.04 Nvidia Driver 538.78 CUDA 12.2 cuDNN 8.9.7 TensorRT 10.7 安装前的准备&#xff08;可选&#xff09; 在安装新版本之前&#xf…...

Linux权限有关

文章目录 一、添加普通用户二、Xshell下命令行的知识三、 Linux和Windows操作系统四、再探指令和Linux权限五、用户相关用户切换: 今天我们学习与Linux有关的权限等内容&#xff0c;以及一些零碎知识帮助我们理解Linux的系统和Xshell的原理。 本篇是在Xshell环境下执行的。 一…...

vue router路由复用及刷新问题研究

路由复用问题 当路由匹配路径未发生变化时&#xff0c;只是相关的参数发生了变化&#xff0c;路由跳转时&#xff0c;会发现虽然地址栏中的地址更新到了新的链接&#xff0c;但是页面渲染并未触发响应路由组件的created,mounted等钩子函数&#xff0c;也就意味着组件并没有被重…...

XML实体注入漏洞攻与防

JAVA中的XXE攻防 回显型 无回显型 cve-2014-3574...

【论文阅读】RT-SKETCH: GOAL-CONDITIONED IMITATION LEARNING FROM HAND-DRAWN SKETCHES

RT-Sketch&#xff1a;基于手绘草图的目标条件模仿学习 摘要&#xff1a;在目标条件模仿学习&#xff08;imitation learning&#xff0c;IL&#xff09;中&#xff0c;自然语言和图像通常被用作目标表示。然而&#xff0c;自然语言可能存在歧义&#xff0c;图像则可能过于具体…...

27. 【.NET 8 实战--孢子记账--从单体到微服务】--简易报表--报表服务

报表是每个记账应用所具备的功能&#xff0c;要实现报表功能就需要把账本的核心功能&#xff08;记账&#xff09;完成&#xff0c;因此报表服务作为本专栏第一部分单体应用开发中最后一个要实现的功能&#xff0c;这一篇文章很简单&#xff0c;我们一起来实现一个简单的报表服…...

LeetCode - #194 Swift 实现文件内容转置

网罗开发 &#xff08;小红书、快手、视频号同名&#xff09; 大家好&#xff0c;我是 展菲&#xff0c;目前在上市企业从事人工智能项目研发管理工作&#xff0c;平时热衷于分享各种编程领域的软硬技能知识以及前沿技术&#xff0c;包括iOS、前端、Harmony OS、Java、Python等…...

【全栈】SprintBoot+vue3迷你商城(9)

【全栈】SprintBootvue3迷你商城&#xff08;9&#xff09; 往期的文章都在这里啦&#xff0c;大家有兴趣可以看一下 后端部分&#xff1a; 【全栈】SprintBootvue3迷你商城&#xff08;1&#xff09; 【全栈】SprintBootvue3迷你商城&#xff08;2&#xff09; 【全栈】Spr…...

ThreeJS示例教程200+【目录】

Three.js 是一个强大的 JavaScript 库,旨在简化在网页上创建和展示3D图形的过程。它基于 WebGL 技术,但提供了比直接使用 WebGL 更易于使用的API,使得开发者无需深入了解 WebGL 的复杂细节就能创建出高质量的3D内容。 由于目前内容还不多,下面的内容暂时做一个占位。 文章目…...

《边界感知的分而治之方法:基于扩散模型的无监督阴影去除解决方案》学习笔记

paper&#xff1a;Boundary-Aware Divide and Conquer: A Diffusion-Based Solution for Unsupervised Shadow Removal 目录 摘要 1、介绍 2、相关工作 2.1 阴影去除 2.2 去噪扩散概率模型&#xff08;Denoising Diffusion Probabilistic Models, DDPM&#xff09; 3、方…...

PyCharm+RobotFramework框架实现UDS自动化测试- (四)项目实战0x10

1.环境搭建 硬件环境&#xff1a;CANoe、待测设备&#xff08;包含UDS诊断模块&#xff09; 2.pythonPyCharm环境 pip install robotframework pip install robotframework-ride pip install openpyxl pip install udsoncan pip install python-can pip install can-isotp3…...

基于java实现规则引擎设计思路

背景 去年底换了公司&#xff0c;目前在做HR招聘系统&#xff0c;产品要求:管理端手动配置发布招聘要求(支持多个招聘条件AND与OR关系编排)&#xff1b;当C端用户报名该职位时&#xff0c;系统执行该规则&#xff0c;返回报名成功或失败。根据技术调研&#xff0c;采用db存规则…...

TCP协议:互联网数据传输的守护者

在互联网的浩瀚海洋中&#xff0c;数据如同涓涓细流&#xff0c;无时无刻不在流动。而这些数据的稳定、可靠传输&#xff0c;离不开一个重要的协议——TCP&#xff08;Transmission Control Protocol&#xff0c;传输控制协议&#xff09;。TCP协议作为互联网协议族中的核心成员…...

2025美国大学生数学建模竞赛(美赛)B题完整思路分析论文(35页)(含模型、可运行代码和运行结果)

2025美国大学生数学建模竞赛B题完整思路分析论文 目录 摘要 一、问题重述 二、问题分析 三、模型假设 四、模型建立与求解 4.1问题1 4.1.1问题1思路分析 4.1.2问题1模型建立 4.1.3问题1样例代码&#xff08;仅供参考&#xff09; 4.1.4问题1样例代码运行结…...

InceptionV1_V2

目录 不同大小的感受野去提取特征 经典 Inception 网络的设计思路与运行流程 背景任务&#xff1a;图像分类&#xff08;以 CIFAR-10 数据集为例&#xff09; Inception 网络的设计思路 Inception 网络的运行流程 打个比方 多个损失函数的理解 1. 为什么需要多个损失函数&#…...

面向对象设计原则

面向对象最大的优势是抵御变化 理解隔离变化&#xff1a; 从宏观面来看&#xff0c;面向对象构建方式更能适应软件的变化&#xff0c;能将变化所带来的影响减为最少。 各司其职&#xff1a;从微观层面来看&#xff0c;面向对象的方式更强调各个类的责任。由于需求变化导致的新…...

近年流行的开发技术

Web 开发领域 前端技术 HTML5、CSS3 和 JavaScript HTML5&#xff1a;作为网页结构的基础&#xff0c;引入了新的语义化标签&#xff08;如<header>、<nav>、<article>等&#xff09;&#xff0c;增强了网页的可读性和搜索引擎优化效果&#xff0c;同时支持…...

Go语言中的Select

Select 在 Go 语言中&#xff0c;select 是一种用于处理多个通道操作的控制结构。它允许你同时监听多个通道上的通信操作&#xff08;发送或接收&#xff09;&#xff0c;并根据哪个操作先完成来执行相应的代码块。select 是 Go 并发编程中的一个重要工具&#xff0c;常用于实…...

SQL调优讨论

说明&#xff1a;狭义的SQL调优&#xff0c;指对慢SQL&#xff08;一般是Select语句&#xff0c;或包含Select的语句&#xff09;优化&#xff0c;在不改变查询结果的情况下提高SQL执行效率。广义上的SQL调优&#xff0c;指对某个慢查询优化&#xff0c;通过一些类操作提高查询…...

【STM32】-TTP223B触摸开关

前言 本文章旨在记录博主STM32的学习经验&#xff0c;我自身也在不断的学习当中&#xff0c;如果文章有写的不对的地方&#xff0c;欢迎各位大佬批评指正。 准备工作 今天这篇文章介绍的是触摸开关这一外围硬件。 ST-link调试器STM32最小系统板单路TTP223B触摸传感器模块LE…...

华为数据之道-读书笔记

内容简介 关键字 数字化生产 已经成为普遍的商业模式&#xff0c;其本质是以数据为处理对象&#xff0c;以ICT平台为生产工具&#xff0c;以软件为载体&#xff0c;以服务为目的的生产过程。 信息与通信技术平台&#xff08;Information and Communication Technology Platf…...

Zookeeper(28)Zookeeper的线性化写入和顺序一致性读是什么?

Zookeeper 是一个分布式协调服务&#xff0c;它在设计上提供了强一致性的保证&#xff0c;其中包括线性化写入和顺序一致性读。这两种一致性模型确保了在分布式系统中数据的一致性和操作的确定性。 线性化写入&#xff08;Linearizable Writes&#xff09; 线性化写入保证在任…...

Ubuntu安装GitLab

在 Ubuntu 上安装 GitLab 的步骤如下。这里以 GitLab Community Edition&#xff08;CE&#xff09;为例&#xff1a; 前提条件 确保你的 Ubuntu 系统是 20.04 或更高版本。确保你的系统满足 GitLab 的硬件要求。 步骤 更新系统包&#xff1a; sudo apt update sudo apt upg…...

Stable Diffusion 3.5 介绍

Stable Diffusion 3.5 是由 Stability AI 推出的最新一代图像生成模型&#xff0c;是 Stable Diffusion 系列的重要升级版本。以下是关于 Stable Diffusion 3.5 的详细信息&#xff1a; 版本概述 Stable Diffusion 3.5 包含三个主要版本&#xff1a; Stable Diffusion 3.5 L…...

力扣hot100-->滑动窗口、贪心

你好呀&#xff0c;欢迎来到 Dong雨 的技术小栈 &#x1f331; 在这里&#xff0c;我们一同探索代码的奥秘&#xff0c;感受技术的魅力 ✨。 &#x1f449; 我的小世界&#xff1a;Dong雨 &#x1f4cc; 分享我的学习旅程 &#x1f6e0;️ 提供贴心的实用工具 &#x1f4a1; 记…...

### 2.5.3 二叉树的基本操作

2.5.3 二叉树的基本操作 // 获取树中节点的个数 int size(Node root);// 获取叶子节点的个数 int getLeafNodeCount(Node root);// 子问题思路-求叶子结点个数// 获取第K层节点的个数 int getKLevelNodeCount(Node root,int k);// 获取二叉树的高度 int getHeight(Node root);…...

GAEA 社区:从用户到共同创造者

GAEA 模型最引人注目的方面之一是&#xff0c;它将用户视为共同创造者&#xff0c;而不仅仅是被动的消费者。在许多中心化平台中&#xff0c;用户就是用户。但在 GAEA 的生态系统中&#xff0c;每个人都在推动进步。无论您是贡献计算能力、分享有价值的数据还是帮助改进模型&am…...

记录一个连不上docker中的mysql的问题

引言 使用的debian12,不同发行版可能有些许差异&#xff0c;连接使用的工具是navicat lite 本来是毫无思绪的&#xff0c;以前在云服务器上可能是防火墙的问题&#xff0c;但是这个桌面环境我压根没有使用防火墙。 直到 ying192:~$ mysql -h127.0.0.1 -uroot ERROR 1045 (28…...

doris:MySQL Load

Doris 兼容 MySQL 协议&#xff0c;可以使用 MySQL 标准的 LOAD DATA 语法导入本地文件。MySQL Load 是一种同步导入方式&#xff0c;执行导入后即返回导入结果。可以通过 LOAD DATA 语句的返回结果判断导入是否成功。一般来说&#xff0c;可以使用 MySQL Load 导入 10GB 以下的…...

使用vitepress搭建自己的博客项目

一、介绍can-vitepress-blog 什么是CAN BLOG CAN BLOG是基于vitepress二开的个人博客系统&#xff0c;他能够方便使用者快速构建自己的博客文章&#xff0c;无需繁琐的配置和复杂的代码编写。 CAN BLOG以antdv为UI设计基础&#xff0c;简洁大方&#xff0c;界面友好&#xf…...

Yii框架中的扩展:如何使用外部库

在Yii框架中&#xff0c;扩展功能的一种常见且有效的方式是使用外部库。这些外部库可以帮助开发者实现特定的功能&#xff0c;如调用第三方API、处理图片、生成PDF文件或发送邮件等。以下是使用外部库扩展Yii框架的详细步骤&#xff1a; 一、安装外部库 使用Composer&#xff…...

【Elasticsearch】inference ingest pipeline

Elasticsearch 的 Ingest Pipeline 功能允许你在数据索引之前对其进行预处理。通过使用 Ingest Pipeline&#xff0c;你可以执行各种数据转换和富化操作&#xff0c;包括使用机器学习模型进行推理&#xff08;inference&#xff09;。这在处理词嵌入、情感分析、图像识别等场景…...

Linux的基本指令(上)

1.ls指令 语法&#xff1a;ls [选项] [目录或文件] 功能&#xff1a;对于⽬录&#xff0c;该命令列出该⽬录下的所有⼦⽬录与⽂件。对于⽂件&#xff0c;将列出⽂件名以及其他信息。 常用选项&#xff1a; -a 列出⽬录下的所有⽂件&#xff0c;包括以 . 开头的隐含⽂件。 -d 将…...

【贪心算法】洛谷P1106 - 删数问题

2025 - 01 - 22 - 第 46 篇 【洛谷】贪心算法题单 - 【贪心算法】 - 【学习笔记】 作者(Author): 郑龙浩 / 仟濹(CSND账号名) 目录 文章目录 目录P1106 删数问题题目描述输入格式输出格式样例 #1样例输入 #1样例输出 #1 提示思路代码 P1106 删数问题 题目描述 键盘输入一个高…...

【人工智能】Python中的知识图谱构建与应用

《Python OpenCV从菜鸟到高手》带你进入图像处理与计算机视觉的大门! 解锁Python编程的无限可能:《奇妙的Python》带你漫游代码世界 随着人工智能技术的不断发展,知识图谱已成为信息检索、推荐系统、自然语言处理等领域的重要技术之一。本文将详细介绍如何使用Python构建知…...

Spring WebSocket 与 STOMP 协议结合实现私聊私信功能

目录 后端pom.xmlConfig配置类Controller类DTO 前端安装相关依赖websocketService.js接口javascripthtmlCSS 效果展示简单测试连接&#xff1a; 报错解决方法1、vue3 使用SockJS报错 ReferenceError: global is not defined 功能补充拓展1. 安全性和身份验证2. 异常处理3. 消息…...

【Matlab高端绘图SCI绘图模板】第05期 绘制高阶折线图

1.折线图简介 折线图是一个由点和线组成的统计图表&#xff0c;常用来表示数值随连续时间间隔或有序类别的变化。在折线图中&#xff0c;x 轴通常用作连续时间间隔或有序类别&#xff08;比如阶段1&#xff0c;阶段2&#xff0c;阶段3&#xff09;。y 轴用于量化的数据&#x…...

java后端之事务管理

Transactional注解&#xff1a;作用于业务层的方法、类、接口上&#xff0c;将当前方法交给spring进行事务管理&#xff0c;执行前开启事务&#xff0c;成功执行则提交事务&#xff0c;执行异常回滚事务 spring事务管理日志&#xff1a; 默认情况下&#xff0c;只有出现Runti…...

常见的多媒体框架(FFmpeg GStreamer DirectShow AVFoundation OpenMax)

1.FFmpeg FFmpeg是一个非常强大的开源多媒体处理框架&#xff0c;它提供了一系列用于处理音频、视频和多媒体流的工具和库。它也是最流行且应用最广泛的框架&#xff01; 官方网址&#xff1a;https://ffmpeg.org/ FFmpeg 的主要特点和功能&#xff1a; 编解码器支持: FFmpe…...

如何移植ftp服务器到arm板子?

很多厂家提供的sdk&#xff0c;一般都不自带ftp服务器功能&#xff0c; 需要要发人员自己移植ftp服务器程序。 本文手把手教大家如何移植ftp server到arm板子。 环境 sdk&#xff1a;复旦微 Buildroot 2018.02.31. 解压 $ mkdir ~/vsftpd $ cp vsftpd-3.0.2.tar.gz ~/vs…...

牛批,吾爱出品

可能是因为从事IT的原因&#xff0c;我身边的大多数朋友也是从事相关工作的&#xff0c;而IT工作往往需要长时间对着电脑。这样就很容易眼睛疲劳。今天给大家推荐几款&#xff0c;希望有对有需要的小伙伴有所帮助&#xff0c;大家可以收藏以来哦。 CareUEyes CareUEyes是一款绿…...

基于 Android 的日程管理系统的设计与实现

标题:基于 Android 的日程管理系统的设计与实现 内容:1.摘要 基于 Android 的日程管理系统旨在帮助用户更高效地管理个人日程安排。该系统采用了 Android 平台的优势&#xff0c;结合了简洁的界面设计和强大的功能&#xff0c;为用户提供了便捷的日程管理体验。 在设计与实现过…...