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

Http详解

🧱 一、从 TCP 三次握手到访问网页:两层过程

🧩 1. TCP 三次握手(网络传输层)

这是 建立连接 的前提,跟 HTTP 无关,但 HTTP 要依赖它。

举例:你打开浏览器访问 https://example.com,首先浏览器会:

  1. DNS 解析:把 example.com 变成 IP 地址,比如 93.184.216.34
  2. TCP 三次握手
    • 客户端 → 服务器:发送 SYN
    • 服务器 → 客户端:返回 SYN-ACK
    • 客户端 → 服务器:返回 ACK
  3. 至此,TCP 连接建立,后续数据就可以可靠地收发了。

🌐 2. HTTP 请求/响应(应用层)

TCP 建好连接后,才开始发送 HTTP 请求,浏览器会构造一个请求报文:

例如一个 HTTP GET 请求可能是这样的:
GET /index.html HTTP/1.1
Host: example.com
User-Agent: Mozilla/5.0 (Windows NT 10.0)
Accept: text/html,application/xhtml+xml
Accept-Encoding: gzip, deflate, br
Connection: keep-alive

📌 你提到的“扫描请求头的某些东西”,其实就是服务器收到 HTTP 请求后会查看请求头中这些字段,比如:

  • Host:确定你访问的是哪个站点(尤其在一台服务器上部署了多个网站时)
  • User-Agent:知道你用的是浏览器还是爬虫、什么设备
  • Accept / Content-Type:决定返回 HTML、JSON、图片还是别的格式
  • Cookie / Authorization:判断你是否已登录、权限是否足够

🔍 所以你记得的“扫描”是指服务器读取这些请求头来决定如何处理请求,甚至是否允许访问。


🔄 整个访问过程一图理解

你输入网址 → DNS 解析 → TCP 三次握手 → HTTP 请求发送↓                ↓IP地址确定     建立连接(握手)↓浏览器发 HTTP 请求↓服务器读取请求头,决定响应↓HTTP 响应返回内容↓浏览器渲染网页

🔒 那 HTTPS 呢?

如果你访问的是 https://

  • 在 TCP 三次握手之后,还要走一个 TLS 握手(加密协商)
  • 成功后才会开始真正的 HTTP 请求(现在是 加密后的 HTTPS 请求

✅ 总结你记得的“扫描请求头”的部分

你记得的没错,只是:

过程你记得的细节属于哪一层是否“扫描”
TCP 三次握手建立连接(三包)网络层❌ 不看应用内容
HTTP 请求请求头(Host、User-Agent 等)应用层✅ 服务器会检查这些字段
HTTPS加密握手(TLS)网络 + 安全层❌ 请求头被加密,不能被中间人看

下面是一个典型的完整 HTTP 请求头,以浏览器访问 https://www.example.com/index.html 为例,我们使用 GET 方法:


📥 示例:HTTP GET 请求头

GET /index.html HTTP/1.1
Host: www.example.com
Connection: keep-alive
Cache-Control: max-age=0
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8
Accept-Encoding: gzip, deflate, br
Accept-Language: zh-CN,zh;q=0.9
Cookie: session_id=abc123; theme=dark

🧩 各字段解释

字段名含义
GET /index.html HTTP/1.1请求方法 + 路径 + HTTP 版本
Host当前请求目标的域名(多个虚拟主机时必须)
Connection设置 TCP 连接策略,keep-alive 表示复用连接
Cache-Control控制是否使用缓存,这里表示不使用缓存
Upgrade-Insecure-Requests表示浏览器希望从 HTTP 自动升级为 HTTPS
User-Agent表示用户的浏览器、操作系统等信息,服务器可能基于此做响应适配
Accept浏览器希望接受的响应内容类型
Accept-Encoding接受哪种压缩格式的响应内容(比如 gzip)
Accept-Language浏览器接受的语言偏好
Cookie客户端存储的 cookie 数据,用于会话管理、个性化设置等

🔒 如果是 HTTPS 呢?

  • 这些请求头内容是一样的,只不过在 HTTPS 下会经过加密,在网络上传输时是不可见的。
  • 中间人(如 WiFi 路由器)不能读取里面的请求内容(包括头和 body)。

✅ 示例:使用 curl 模拟访问网页(带自定义请求头)

我们来模拟一个访问 https://www.example.com/index.html 的请求,并加上一些常见的请求头:

curl -X GET https://www.example.com/index.html \-H "Host: www.example.com" \-H "Connection: keep-alive" \-H "Cache-Control: max-age=0" \-H "Upgrade-Insecure-Requests: 1" \-H "User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36" \-H "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8" \-H "Accept-Encoding: gzip, deflate, br" \-H "Accept-Language: zh-CN,zh;q=0.9" \-H "Cookie: session_id=abc123; theme=dark" \-v

📌 说明:

  • -X GET 明确使用 GET 方法(其实默认就是 GET)。
  • -H 用来设置每一条请求头。
  • -v 表示 verbose 模式,可以显示请求和响应的详细信息(推荐开启!)。

🧪 运行效果(简略版)

运行后你会看到 curl 打印出如下内容:

> GET /index.html HTTP/1.1
> Host: www.example.com
> Connection: keep-alive
> Cache-Control: max-age=0
> Upgrade-Insecure-Requests: 1
> User-Agent: Mozilla/5.0 ...
> Accept: text/html,...
> Accept-Encoding: gzip, deflate, br
> Accept-Language: zh-CN,zh;q=0.9
> Cookie: session_id=abc123; theme=dark
>
< HTTP/1.1 200 OK
< Content-Type: text/html; charset=UTF-8
< Content-Encoding: gzip
< Content-Length: ...
...

你会看到:

  • 上半部分是你发出的请求(带请求头)
  • 下半部分是服务器的响应(状态码、响应头、响应体)

✅ 实战建议

你可以把上面的命令复制到终端执行,只要换一个真实的网址,比如:

curl -X GET https://www.baidu.com \-H "User-Agent: CustomClient/1.0" \-H "Accept: application/json" \-H "Cookie: session_id=xyz999" \-v
PS C:\Users\33895> curl.exe https://httpbin.org/get -H "User-Agent: TestUA" -v
* Host httpbin.org:443 was resolved.
* IPv6: (none)
* IPv4: 198.17.0.206
*   Trying 198.17.0.206:443...
* schannel: disabled automatic use of client certificate
* ALPN: curl offers http/1.1
* ALPN: server accepted http/1.1
* Connected to httpbin.org (198.17.0.206) port 443
* using HTTP/1.x
> GET /get HTTP/1.1
> Host: httpbin.org
> Accept: */*
> User-Agent: TestUA
>
* Request completely sent off
< HTTP/1.1 503 Service Temporarily Unavailable
< Server: awselb/2.0
< Date: Thu, 01 May 2025 14:43:13 GMT
< Content-Type: text/html
< Content-Length: 162
< Connection: keep-alive
<
<html>
<head><title>503 Service Temporarily Unavailable</title></head>
<body>
<center><h1>503 Service Temporarily Unavailable</h1></center>
</body>
</html>
* Connection #0 to host httpbin.org left intact
PS C:\Users\33895>

🔍 命令行回顾

curl.exe https://httpbin.org/get -H "User-Agent: TestUA" -v
  • curl.exe: 使用的是 Windows 系统内置的原始 curl
  • https://httpbin.org/get: 请求的目标 URL(GET 请求)
  • -H "User-Agent: TestUA": 添加自定义请求头
  • -v: verbose 模式,打印详细连接与通信过程

🧾 输出详解

🔹 1. DNS解析 & TCP连接

* Host httpbin.org:443 was resolved.
  • 说明已通过 DNS 查到 httpbin.org 的 IP 地址,并准备连接 443 端口(HTTPS)
* IPv6: (none)
* IPv4: 198.17.0.206
  • 目标主机没有 IPv6 地址,使用 IPv4 198.17.0.206
*   Trying 198.17.0.206:443...
  • 正在尝试与该 IP 的 443 端口建立 TCP 连接

🔹 2. TLS/SSL & ALPN 协议协商

* schannel: disabled automatic use of client certificate
  • schannel 是 Windows 下的 TLS/SSL 库,这里说明未使用客户端证书(默认行为)
* ALPN: curl offers http/1.1
* ALPN: server accepted http/1.1
  • ALPN(Application-Layer Protocol Negotiation)是 TLS 的扩展
  • 表示 curl 提议使用 HTTP/1.1,服务器也接受了

🔹 3. TCP连接成功

* Connected to httpbin.org (198.17.0.206) port 443
* using HTTP/1.x
  • TCP + TLS 握手成功,连接已建立
  • 使用 HTTP/1.x 协议

🔹 4. 请求发送

> GET /get HTTP/1.1
> Host: httpbin.org
> Accept: */*
> User-Agent: TestUA
  • GET /get HTTP/1.1: 请求的方法、路径和协议
  • Host: httpbin.org: 指定目标主机(必需)
  • Accept: */*: 表示接受任意响应类型
  • User-Agent: TestUA: 你自定义的 UA 标识头
* Request completely sent off
  • 表示请求已经完全发送出去

🔹 5. 响应返回

< HTTP/1.1 503 Service Temporarily Unavailable
< Server: awselb/2.0
< Date: Thu, 01 May 2025 14:43:13 GMT
< Content-Type: text/html
< Content-Length: 162
< Connection: keep-alive
  • HTTP/1.1 503: 服务器返回的响应状态码(临时不可用)
  • Server: awselb/2.0: 服务器是 AWS 的 Elastic Load Balancer
  • Date: 响应时间
  • Content-Type: 返回的是 HTML(网页),不是 JSON
  • Content-Length: HTML 内容的长度(162 字节)
  • Connection: keep-alive: 服务器希望保持连接,不马上断开

🔹 6. 响应正文

<html>
<head><title>503 Service Temporarily Unavailable</title></head>
<body>
<center><h1>503 Service Temporarily Unavailable</h1></center>
</body>
</html>
  • 简单的 HTML 页面,提示 503 错误

🔹 7. 连接结束

* Connection #0 to host httpbin.org left intact
  • 表示连接未关闭(keep-alive 生效),curl 不会主动断开,供下次复用

✅ 总结

这个 verbose 输出涵盖了:

阶段内容
DNS解析查到 IP 地址
TCP连接与服务器建立连接
TLS握手通过 ALPN 确定使用 HTTP/1.1
请求内容打印发出的 HTTP 请求头
响应头打印服务器返回的响应状态和内容类型
响应体HTML 错误页
连接处理保持连接未关闭
PS C:\Users\33895> curl.exe "https://www.baidu.com/s?wd=test"
<a href="https://wappass.baidu.com/static/captcha/tuxing_v2.html?&amp;logid=7987820460167506860&amp;ak=c27bbc89afca0463650ac9bde68ebe06&amp;backurl=https%3A%2F%2Fwww.baidu.com%2Fs%3Fwd%3Dtest&amp;ext=x9G9QDmMXq%2FNo87gjGO0P7zYlbLsT8y8wKbl0sIMQh9WkhrGqVqihBVl6ZY8QtPHUgqUK9LXd1cIlztrhMwiv5LGqKWhTZD8Q7xZpGkscD5m9BVI2WSf6oW03O5A8dkk&amp;signature=b7d7e5b0fc3623b54c550ff291d55c76&amp;timestamp=1746111289">Found</a>.

你这个请求遇到了百度的 反爬虫/验证码重定向机制。我们来逐步解析发生了什么:


📌 现象说明:

你访问的是:

bash复制编辑
curl.exe "https://www.baidu.com/s?wd=test"

返回的内容却是这样的一段:

html复制编辑
<a href="https://wappass.baidu.com/static/captcha/tuxing_v2.html?...">Found</a>.

这说明:

✅ 百度确实返回了 302 重定向(跳转到验证码页面):

  • 当百度认为你的请求不是“真实用户”发起的(比如没有浏览器行为、没有 cookies、没有 JS 执行环境),它会:
    • 返回一个 302 重定向
    • 重定向目标是一个图形验证码页面,提示你要“点点验证码”验证你是人类

🔍 为什么你会被拦?

百度会检测以下条件:

检测点描述
User-Agent是否是常见浏览器
Referer是否从网页点击过来的
Cookie有没有已有的身份信息(如百度登录或搜索行为)
JS行为是否会执行 JavaScript,返回行为数据(curl 不会)

✅ 如何“伪装浏览器”避免被立即拦?

你可以模拟常见浏览器的请求头,比如:

bash复制编辑curl.exe "https://www.baidu.com/s?wd=test" ^-H "User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 Chrome/122.0.0.0 Safari/537.36" ^-H "Accept: text/html" ^-H "Referer: https://www.baidu.com" ^-H "Accept-Language: zh-CN,zh;q=0.9" ^-L ^-v

参数说明:

  • -H: 模拟请求头
  • -L: 自动跟随重定向(避免只看到 302)
  • -v: 查看详细过程

⚠️ 即便如此,百度仍然可能返回验证码页面,因为它用 JS + 图形验证码判断你是不是“机器人”。


✅ 正确调试方式建议:

如果你只是想学习和调试 HTTP 请求:

  • 使用 httpbin.orghttpbingo.orgreqres.in 这类测试服务器
  • 或自己搭个简单 Flask/FastAPI 服务,方便测试请求和响应内容

🚫 不建议用 curl 大规模抓百度网页:

百度、谷歌、B站、微博等大厂都启用了 复杂的反爬虫机制,用 curl 是“裸奔”方式,很容易被 ban,甚至封 IP。

相关文章:

Http详解

&#x1f9f1; 一、从 TCP 三次握手到访问网页&#xff1a;两层过程 &#x1f9e9; 1. TCP 三次握手&#xff08;网络传输层&#xff09; 这是 建立连接 的前提&#xff0c;跟 HTTP 无关&#xff0c;但 HTTP 要依赖它。 举例&#xff1a;你打开浏览器访问 https://example.c…...

实验五 完整性

一、引言 本次上机实验的目的主要是让学生掌握数据库完整性的三大类型&#xff08;实体完整性、参照完整性、用户自定义完整性&#xff09;&#xff0c;并通过实际建库建表和数据操作加深理解。 下面将为分别展示 student、course、sc 三个表的创建语句&#xff0c;并设置对应的…...

《原码、反码与补码:计算机中的数字奥秘》

&#x1f680;个人主页&#xff1a;BabyZZの秘密日记 &#x1f4d6;收入专栏&#xff1a;C语言 &#x1f30d;文章目入 一、原码&#xff1a;最直观的表示法1. 正数的原码2. 负数的原码3. 原码的特点 二、反码&#xff1a;原码的“反转”1. 正数的反码2. 负数的反码3. 反码的特…...

论文笔记——QWen2.5 VL

目录 引言架构创新数据整理与训练策略性能与基准测试精细感知能力应用与现实世界影响与现有模型比较结论 引言 视觉理解和自然语言处理的集成一直是人工智能研究的一个重要焦点&#xff0c;促成了日益复杂的视觉语言模型 (VLMs) 的发展。由阿里巴巴集团 Qwen 团队开发的 Qwe…...

前端HTML基础知识

1.HTML介绍 HTML(HyperText Markup Language&#xff0c;超文本标记语言)是构成网页的基本元素&#xff0c;是一种用于创建网页的标准化标记语言。HTML不是一种编程语言&#xff0c;而是一种标记语言&#xff0c;通过标签来描述网页的结构和内容。 超文本&#xff1a;超文本是…...

程序代码篇---ESP32云开发

文章目录 前言 前言 本文简单介绍了实现 ESP32-S3 传感器数据上传至云平台 手机远程控制电机 的完整方案&#xff0c;涵盖推荐的云平台、手机端。 一、推荐云平台及工具 云平台选择 阿里云 IoT 平台 优势&#xff1a;国内稳定、支持大规模设备接入、提供完整设备管理及安全…...

【C语言】文本操作函数fseek、ftell、rewind

一、fseek int fseek ( FILE * stream, long int offset, int origin ); 重新定位文件指针的位置&#xff0c;使其指向以origin为基准、偏移offset字节的位置。 成功返回0&#xff0c;失败返回非零值&#xff08;通常为-1&#xff09;。 origin有如下三种&#xff1a;分别是…...

ARM ASM

ARM ASM ARM寄存器集 列出了ARM的16个程序员可见寄存器&#xff08;r0~r15&#xff09;以及它的状态寄存器。 ARM共有14个通用寄存器r0~r13。寄存器r13被保留用作栈指针&#xff0c;r14存放子程 序返回地址&#xff0c;r15为程序计数器。 由于r15能够被程序员访问&#xff0c…...

【五一培训】Day1

注&#xff1a; 1. 本次培训内容的记录将以“Topic”的方式来呈现&#xff0c;用于记录个人对知识点的理解。 2. 由于培训期间&#xff0c;作者受限于一些现实条件&#xff0c;本文的排版及图片等相关优化&#xff0c;需要过一段时间才能完成。 Topic 1&#xff1a;使用DeepS…...

SpringBoot使用分组校验解决同一个实体对象在不同场景下需要不同校验规则的问题

背景 添加分类的接口不需要id字段&#xff0c;但更新分类的接口需要id字段&#xff0c;当在id字段上使用NotNull注解时&#xff0c;会导致使用添加分类接口报id字段不能为空的错误 解决 定义分组 pojo/Category.java // 如果没有指定分组&#xff0c;则默认属于Default分组…...

Hibernate与MybatisPlus的混用问题(Invalid bound statement (not found))

当项目里已经有了Hibernate后&#xff1a; spring:jpa:hibernate:ddl-auto: updateshow-sql: trueproperties:hibernate:format_sql: true 再配置yml文件就会失效&#xff1a; mybatis-plus:mapper-locations: classpath:mapper/*.xml# 全局策略global-config:db-config:# 自…...

【音视频】ffplay数据结构分析

struct VideoState 播放器封装 typedef struct VideoState {SDL_Thread *read_tid; // 读线程句柄AVInputFormat *iformat; // 指向demuxerint abort_request; // 1时请求退出播放int force_refresh; // 1时需要刷新画⾯&#xff0c;请求⽴即刷新画⾯的意思int paused; // 1时…...

PV操作:宣帧闯江湖武林客栈版学习笔记【操作系统】

P,V,S江湖话翻译 P&#xff08;申请&#xff09; 江湖侠客拔剑大喊“掌柜的&#xff0c;给我一间上房&#xff01;”&#xff08;申请资源&#xff0c;房不够就蹲门口等&#xff09;-要房令牌 V&#xff08;释放&#xff09; 江湖侠客退房时甩出一锭银子&#xff0c;大喊“…...

精品推荐-湖仓一体电商数据分析平台实践教程合集(视频教程+设计文档+完整项目代码)

精品推荐&#xff0c;湖仓一体电商数据分析平台实践教程合集&#xff0c;包含视频教程、设计文档及完整项目代码等资料&#xff0c;供大家学习。 1、项目背景介绍及项目架构 2、项目使用技术版本及组件搭建 3、项目数据种类与采集 4、实时业务统计指标分析一——ODS分层设计与…...

对计网考研中的信道、传输时延、传播时延的理解

对计网考研中的信道、传输时延、传播时延的理解 在学习数据链路层流量控制和可靠传输那一节的三个协议的最大信道利用率时产生的疑惑 情景&#xff1a; 假如A主机和B主机通过集线器连接&#xff0c;A和集线器是光纤连接&#xff0c;B和集线器也是光纤连接&#xff0c;A给B发…...

RAGFlow报错:ESConnection.sql got exception

环境&#xff1a; Ragflowv0.17.2 问题描述&#xff1a; RAGFlow报错&#xff1a;ESConnection.sql got exception _ming_cheng_tks, 浙江, operatorOR;minimum_should_match30%) 2025-04-25 15:55:06,862 INFO 244867 POST http://localhost:1200/_sql?formatjson […...

报错:函数或变量 ‘calcmie‘ 无法识别。

1、具体报错 运行网上一个开源代码&#xff0c;但是运行报如下错&#xff1a; TT_para_gen 函数或变量 calcmie 无法识别。 出错 TT_para_gen>Mie (第 46 行) [S, C, ang,~] calcmie(rad, ns, nm, lambda, nang, ... 出错 TT_para_gen (第 17 行) [~,ang,Miee,C] …...

蓝桥杯获奖后心得体会

文章目录 获奖项备考心得&#x1f4d6; 蓝桥杯 Java 研究生组备考心得&#x1f4cc; 一、备考规划&#x1f4cc; 二、考试技巧&#x1f4cc; 三、心理调整&#x1f4cc; 四、总结 获奖项 JAVA研究生组省二 备考心得 好&#xff01;我来给你写一篇蓝桥杯研究生组Java方向的备…...

大鱼吃小鱼开源

因为知道一些学校也有相关C语言课设 所以这里对代码开源&#xff08;如果没有csdn会员请用夸克&#xff09; 我用夸克网盘分享了「大鱼吃小鱼-程序.zip」&#xff0c;点击链接即可保存。打开「夸克APP」&#xff0c;无需下载在线播放视频&#xff0c;畅享原画5倍速&#xff0…...

深度学习框架搭建(Vscode/Anaconda/CUDA/Pytroch)

目录 ​​​​​​一 Vscode安装 二、Anaconda安装 三、更新显卡驱动 四、安装CUDA 五、安装Pytorch 六、Vscode配置 七、出现的问题汇总 ​​​​​​一 Vscode安装 在 Windows 上安装 访问 VS Code 官网 https://code.visualstudio.com/&#xff0c;点击 "Downl…...

免费实用的图像处理工具箱​

提到图像处理&#xff0c;一般会想到Photoshop。的确PS比较专业&#xff0c;但是学习成本比较高。其实&#xff0c;针对具体的应用场景&#xff0c;选些简单的工具软件会更方便。 今天就给大家分享一款“洋芋田图像工具箱”软件。它支持Windows和Mac电脑。 用这款软件&#x…...

范式演进:从ETL到ELT及未来展望

范式演进:从ETL到ELT及未来展望 引言 随着数据规模与实时分析需求的爆发,传统的集中式 ETL(Extract-Transform-Load)已难以为继,ELT(Extract-Load-Transform)凭借云原生仓库的弹性计算与分析工程的兴起逐步成为主流。2025 年,数据团队正加速从“先变换再加载”走向“…...

定义一个3D cube,并计算cube每个顶点的像素坐标

定义一个3D cube,并计算cube每个顶点的像素坐标 scratch a pixel课程&#xff1a;Your Starting Point! 3D场景中物体所有点与坐标系原点的连线&#xff0c;该连线与像素平面canvas的交点就是场景中3D点其投影点的位置 3D场景中的点均由这个坐标系描述 相似三角形ABC和A’B’…...

Python学习笔记(第二部分)

接续 Python.md 文件的第二部分 字典 字典的基本操作 字典是一系列 键—值 对&#xff0c;每一个键都与一个值关联&#xff0c;值可以是数字&#xff0c;字符串&#xff0c;甚至是列表或字典&#xff0c;可以把任何python对象都作为字典中的值 alien {color:green,points:5}键…...

ZYNQB笔记(十六):AXI DMA 环路测试

版本&#xff1a;Vivado2020.2&#xff08;Vitis&#xff09; 任务&#xff1a;使用 PL 端的 AXI DMA IP 核实现对 DDR3 中数据的读取与写入&#xff0c;实现数据环回&#xff0c;具体流程为&#xff1a; PS 端产生测试数据并写入到 DDR3 中&#xff0c;然后 PL 端的 AXI DMA I…...

Java学习手册:Spring 数据访问

一、Spring JDBC JdbcTemplate &#xff1a;Spring JDBC 提供了 JdbcTemplate 类&#xff0c;它简化了数据库操作&#xff0c;提供了丰富的 API 来执行数据库访问任务。JdbcTemplate 可以自动处理数据库连接的获取、释放&#xff0c;SQL 语句的执行&#xff0c;结果集的处理等…...

第二章 日志分析-apache日志分析(玄机系列)

简介 账号密码 root apacherizhi ssh rootIP 1、提交当天访问次数最多的IP&#xff0c;即黑客IP&#xff1a; 2、黑客使用的浏览器指纹是什么&#xff0c;提交指纹的md5&#xff1a; 3、查看包含index.php页面被访问的次数&#xff0c;提交次数&#xff1a; 4、查看黑客IP访问了…...

类比分析AI Agent 技术

引言&#xff1a;AI Agent 的本质与范式转变 在人工智能领域&#xff0c;AI Agent&#xff08;智能体&#xff09;代表了一种从传统软件系统到自主性实体的深刻范式转变。不同于仅仅执行预设指令或算法的程序&#xff0c;现代 AI Agent 被设计为能够&#xff1a; 感知 (Perce…...

【业务领域】PCIE协议理解

PCIE协议理解 提示&#xff1a;这里可以添加系列文章的所有文章的目录&#xff0c;目录需要自己手动添加 PCIE学习理解。 文章目录 PCIE协议理解[TOC](文章目录) 前言零、PCIE掌握点&#xff1f;一、PCIE是什么&#xff1f;二、PCIE协议总结物理层切速 链路层事务层6.2 TLP的路…...

设计模式简述(十四)组合模式

组合模式 描述基本使用所有节点方法一致使用 叶子无实现子节点使用 添加向上查询使用&#xff08;没变化&#xff09; 描述 组合模式用于描述部分与整体的关系&#xff0c;将个体对象与组合对象的行为统一&#xff0c;便于维护整个数据集。 基本使用 所有节点方法一致 定义…...

【Tool】vscode

vscode问题集锦 1 全局搜索失效 ctrl shift f 快捷键失效&#xff1a; 原因&#xff1a;可能与输入法快捷键冲突&#xff0c;重定义输入法快捷键即可 其他 看心情和经历补充&#xff5e;...

文件操作--文件包含漏洞

本文主要内容 脚本 ASP、PHP、JSP、ASPX、Python、Javaweb --# 各种包含函数 检测 白盒 代码审计 黑盒 漏扫工具、公开漏洞、手工看参数值及功能点 类型 本地包含 有限制、无限制 远程包含 无限制、有限制…...

数字智慧方案6156丨智慧医联体信息化解决方案(50页PPT)(文末有下载方式)

资料解读&#xff1a;智慧医联体信息化解决方案 详细资料请看本解读文章的最后内容。 在医疗改革不断深化的大背景下&#xff0c;医联体信息化建设成为推动医疗服务高质量发展的关键力量。《智慧医联体信息化解决方案》这份资料&#xff0c;全面且深入地阐述了医联体信息化建…...

华为eNSP:多区域集成IS-IS

一、什么是多区域集成IS-IS&#xff1f; 多区域集成IS-IS是一种基于中间系统到中间系统&#xff08;IS-IS&#xff09;协议优化的网络架构设计&#xff0c;通过多区域协同、路径优化和扩展性增强实现高效路由管理&#xff0c;其核心特征如下&#xff1a; 1、分布式架构与多区…...

RAG技术完全指南(一):检索增强生成原理与LLM对比分析

RAG技术完全指南&#xff08;一&#xff09;&#xff1a;检索增强生成原理与LLM对比分析 文章目录 RAG技术完全指南&#xff08;一&#xff09;&#xff1a;检索增强生成原理与LLM对比分析1. RAG 简介2. 核心思想3. 工作流程3.1 数据预处理&#xff08;索引构建&#xff09;3.2…...

(持续更新)Ubuntu搭建LNMP(Linux + Nginx + MySQL + PHP)环境

LNMP&#xff08;Linux Nginx MySQL PHP&#xff09;环境是在Linux操作系统上构建的一个高性能Web服务器环境。M也可以指代其他数据库&#xff0c;P也可以指代Python 1. 准备Linux系统 确保你已经在一台服务器或虚拟机上安装了Linux操作系统。推荐使用Ubuntu、CentOS或Debi…...

机器人手臂控制器:EMC电磁兼容解决(一)

一、机器人手臂控制器行业标准剖析 GB/T 39004—2020《工业机器人电磁兼容设计规范》 GB/T 37283-2019 服务机器人 电磁兼容 通用标准 抗扰度要求和限值 GB/T 39785-2021 服务机器人 机械安全评估与测试方法 GB/T 40014-2021 双臂工业机器人 性能及其试验方法 GB/T 40013-…...

Qt进阶开发:QSS常用的语法介绍和使用

文章目录 一、什么是QSS?二、QSS的基本语法三、QSS 的使用方式3.1 在代码中设置 QSS3.2 加载外部 QSS 文件四、QSS中选择器的介绍和使用4.1 Type Selector(类型选择器)4.2 ID Selector(ID 选择器)4.2.1 仅使用 ID(常见写法)4.2. 2 类型 + ID(更精确匹配)4.3 Class Sel…...

qemu学习笔记:QOM

2.4 QOM介绍 说明&#xff1a;小白学习qemu的一些学习笔记。主要是学习《QEMU&KVM源码解析与应用》这本书。 参考&#xff1a; 《QEMU&KVM源码解析与应用》作者&#xff1a;李强 Qemu - 百问网嵌入式Linux wiki QOM 定义&#xff1a;QEMU Object Model&#xff0c;是 Q…...

Spring AI开发跃迁指南(第二章:急速上手3——Advisor核心原理、源码讲解及使用实例)

1.Advisor简介 Spring AI 中的 Advisor 是一种核心机制&#xff0c;用于拦截和增强 AI 应用程序中的请求与响应流。其设计灵感来源于 Spring AOP&#xff08;面向切面编程&#xff09;中的切面&#xff08;Aspect&#xff09;概念&#xff0c;但专门针对 AI 交互场景进行了优化…...

51c嵌入式~单片机~合集9

我自己的原文哦~ https://blog.51cto.com/whaosoft/13884964 一、单片机中hex、bin文件的区别 单片机程序编译之后&#xff0c;除了生成hex文件之外还生成了bin文件&#xff0c;实际它们都是单片机的下载文件&#xff0c;下文介绍它们的区别。 Hex Hex文件包含地址信息。…...

linux学习——数据库API创建

一.API操作 1.int sqlite3_open(char *filename,sqlite3 **db) 功能&#xff1a;打开sqlite数据库 参数&#xff1a; filename:数据库文件路径 db:指向sqlite句柄的指针 &#xff08;splite3* db;&#xff09; 返回值…...

21.2Linux中的LCD驱动实验(驱动)_csdn

1、修改设备树 1.1、LCD 屏幕使用的 IO 配置 编译&#xff1a; make uImage LOADADDR0XC2000040 -j8 //编译内核复制给内核的镜像路径&#xff1a;1.2、LDTC 接口节点修改 1.3、输出接口的编写 2、在 panel-simple.c 文件里面添加屏幕参数 显示波浪线是因为alientek_desc 保存参…...

Dubbo(89)如何设计一个支持多语言的Dubbo服务?

设计一个支持多语言的Dubbo服务需要考虑以下几个方面&#xff1a; 服务接口设计&#xff1a;确保服务接口的定义可以被不同语言实现。序列化协议&#xff1a;选择一个支持多语言的序列化协议&#xff0c;例如Protobuf、Thrift、gRPC等。服务注册与发现&#xff1a;确保服务注册…...

油气地震资料数据中“照明”的含义

油气地震资料数据中“照明”的含义 在地震勘探中&#xff0c;“照明”&#xff08;Illumination&#xff09;是一个比喻性术语&#xff0c;用于描述地下地质构造被地震波能量覆盖的程度。其核心含义包括&#xff1a; 能量覆盖&#xff1a;指地震波&#xff08;如人工激发的地…...

[FPGA Video IP] Frame Buffer Read and Write

Xilinx Video Frame Buffer Read and Write IP (PG278) 详细介绍 概述 Xilinx LogiCORE™ IP Video Frame Buffer Read&#xff08;帧缓冲读取&#xff09;和 Video Frame Buffer Write&#xff08;帧缓冲写入&#xff09;核&#xff08;PG278&#xff09;是一对专为视频处理…...

新能源行业供应链规划及集成计划报告(95页PPT)(文末有下载方式)

资料解读&#xff1a;《数字化供应链规划及集成计划现状评估报告》 详细资料请看本解读文章的最后内容。 该报告围绕新能源行业 XX 企业供应链展开&#xff0c;全面评估其现状&#xff0c;剖析存在的问题&#xff0c;并提出改进方向和关键举措&#xff0c;旨在提升供应链竞争力…...

curl详解

curl 是一个常用的命令行工具&#xff0c;用于发送 HTTP 请求&#xff0c;支持包括 GET、POST、PUT、DELETE 等在内的多种 HTTP 方法。它非常适合用来测试 API、下载文件、与后端服务进行交互等。接下来&#xff0c;我会详细讲解 curl 的基本用法以及常见的应用场景。 &#x…...

博客打卡-人类基因序列功能问题动态规划

题目如下&#xff1a; 众所周知&#xff0c;人类基因可以被认为是由4个核苷酸组成的序列&#xff0c;它们简单的由四个字母A、C、G和T表示。生物学家一直对识别人类基因和确定其功能感兴趣&#xff0c;因为这些可以用于诊断人类疾病和设计新药物。 生物学家确定新基因序列功能…...

Runnable组件动态添加默认调用参数

01. bind 函数用途与使用技巧 在使用 LangChain 开发时&#xff0c;某些场景我们希望在一个 Runnable 队列中调用另一个 Runnable 并传递常量参数&#xff0c;这些参数既非前序 Runnable 的输出&#xff0c;也不是用户输入&#xff0c;而是组件自身的部分参数。此时可以使用 R…...