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

学习黑客HTTP 请求头

HTTP 请求头(Request Headers)是 HTTP 请求中非常重要的一部分,它们以键值对的形式向服务器传递关于请求的附加信息、客户端的能力或上下文。

理解请求头对于 Web 开发、API 交互、网络调试和安全都至关重要。下面我将常见的 HTTP 请求头字段进行分类科普,并给出一些示例。

HTTP 请求头结构:
一个典型的 HTTP 请求(例如 GET 请求)可能如下:

GET /index.html HTTP/1.1
Host: www.example.com
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.93 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Cookie: session_id=abc123xyz; user_preference=dark_mode
If-Modified-Since: Mon, 17 May 2025 10:00:00 GMT
Authorization: Bearer <token>

GET /index.html HTTP/1.1 是请求行,之后直到空行之前的部分都是请求头。


常见 HTTP 请求头字段分类详解:

1. 通用信息与上下文控制 (General & Context Control)
  • Host (必需)

    • 作用:指定请求的目标服务器的域名和端口号(如果不是默认端口80或443)。这是 HTTP/1.1 协议中唯一一个强制要求的请求头。
    • 原因:允许多个域名(虚拟主机)共享同一个 IP 地址。
    • 示例Host: www.example.comHost: api.example.com:8080
  • User-Agent

    • 作用:包含发起请求的客户端(通常是浏览器、爬虫或应用程序)的标识信息。
    • 原因:服务器可以根据不同的客户端提供不同的内容或体验(例如,移动版网页)。
    • 示例User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36
  • Referer (注意:单词本身是 “Referrer” 的拼写错误,但已成为标准)

    • 作用:表示当前请求是从哪个 URL 跳转过来的。
    • 原因:用于统计分析、日志记录、缓存优化或防盗链。
    • 示例Referer: https://www.google.com/search?q=http+headers
  • Origin

    • 作用:指示引发该请求的源(协议、域名和端口)。主要用于 CORS(跨源资源共享)请求中。
    • 原因:帮助服务器判断是否允许跨域请求。
    • 示例Origin: https://developer.mozilla.org
  • Connection

    • 作用:决定当前事务完成后,网络连接是否关闭。
    • HTTP/1.1 默认值keep-alive (持久连接,允许在同一连接上发送多个请求)。
    • 其他值close (请求完成后关闭连接)。
    • 示例Connection: keep-alive
  • Date

    • 作用:请求发送的日期和时间 (GMT)。
    • 原因:主要用于消息跟踪、缓存控制等。
    • 示例Date: Tue, 18 May 2025 03:10:07 GMT
2. 内容协商 (Content Negotiation - 客户端期望的响应格式)

这些头部告诉服务器客户端期望接收什么样格式的响应。

  • Accept

    • 作用:客户端可以处理的内容类型(MIME 类型)。可以使用 q 值(权重因子,0到1)来表示优先级。
    • 示例Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
  • Accept-Charset

    • 作用:客户端可以处理的字符集。
    • 示例Accept-Charset: utf-8, iso-8859-1;q=0.5
  • Accept-Encoding

    • 作用:客户端可以处理的内容编码方式(通常是压缩算法)。
    • 示例Accept-Encoding: gzip, deflate, br
  • Accept-Language

    • 作用:客户端偏好的自然语言。
    • 示例Accept-Language: en-US,en;q=0.9,zh-CN;q=0.8
3. 条件请求 (Conditional Requests)

这些头部允许客户端基于某些条件发起请求,通常用于缓存验证或避免不必要的数据传输。

  • If-Modified-Since

    • 作用:如果资源自指定日期时间以来未被修改,则服务器返回 304 Not Modified 状态码,不返回资源内容。
    • 示例If-Modified-Since: Mon, 17 May 2025 12:00:00 GMT
  • If-Unmodified-Since

    • 作用:如果资源自指定日期时间以来已被修改,则服务器返回 412 Precondition Failed
    • 示例If-Unmodified-Since: Mon, 17 May 2025 12:00:00 GMT
  • If-Match

    • 作用:仅当资源的 ETag(实体标签,资源的特定版本标识符)与此头部中给出的一个或多个 ETag 匹配时,请求才会成功。常用于防止并发更新时“丢失更新”问题(乐观锁)。
    • 示例If-Match: "xyzzy"
  • If-None-Match

    • 作用:仅当资源的 ETag 与此头部中给出的任何 ETag 都不匹配时,请求才会成功。常用于缓存验证(类似 If-Modified-Since,但基于 ETag)。如果匹配,服务器返回 304 Not Modified
    • 示例If-None-Match: "xyzzy", "r2d2xxxx"
  • If-Range

    • 作用:如果资源未改变(基于 ETag 或日期),则返回 Range 头部指定的资源部分;否则,返回整个新资源。用于断点续传。
    • 示例If-Range: "xyzzy"If-Range: Mon, 17 May 2025 12:00:00 GMT
4. 认证与授权 (Authentication & Authorization)
  • Authorization

    • 作用:包含用于向服务器验证用户代理身份的凭证。
    • 常见类型
      • Basic <base64_encoded_credentials>: 基本认证。
      • Bearer <token>: OAuth 2.0 或 JWT 等令牌认证。
    • 示例Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...
  • Proxy-Authorization

    • 作用:包含用于向代理服务器验证用户代理身份的凭证。
    • 示例Proxy-Authorization: Basic ...
5. Cookie 与状态管理
  • Cookie
    • 作用:包含先前由服务器通过 Set-Cookie 响应头发送并存储在客户端的 HTTP Cookie。
    • 原因:用于维护会话状态、用户偏好设置等。
    • 示例Cookie: session_id=abc123xyz; theme=dark
6. 缓存控制 (Caching)
  • Cache-Control (也用于响应头)

    • 作用:在请求中,它可以指示客户端或中间缓存如何处理请求。
    • 常见请求指令
      • no-cache: 强制缓存向源服务器验证资源,即使本地有缓存副本。
      • no-store: 禁止缓存存储任何版本的请求或响应。
      • max-age=<seconds>: 客户端愿意接受一个其年龄不超过指定秒数的响应。
      • max-stale[=<seconds>]: 客户端愿意接受一个已过期的响应。
      • min-fresh=<seconds>: 客户端希望得到一个在指定秒数内仍然保持新鲜的响应。
      • only-if-cached: 仅当缓存中有副本时才返回,否则返回 504。
    • 示例Cache-Control: no-cache, max-age=0
  • Pragma (历史遗留,主要用于 HTTP/1.0)

    • 作用:通常设置为 Pragma: no-cache,效果类似 Cache-Control: no-cache
    • 示例Pragma: no-cache
7. 请求体信息 (Request Body Information - 主要用于 POST, PUT, PATCH 等方法)
  • Content-Type

    • 作用:指示请求体的媒体类型(MIME 类型)。
    • 示例
      • Content-Type: application/json
      • Content-Type: application/x-www-form-urlencoded
      • Content-Type: multipart/form-data; boundary=something
      • Content-Type: text/xml
  • Content-Length

    • 作用:请求体的长度(以字节为单位)。
    • 示例Content-Length: 1024
  • Content-Encoding

    • 作用:指示请求体所使用的编码方式(通常是压缩)。这与 Accept-Encoding 不同,后者是客户端声明它能理解的响应编码。
    • 示例Content-Encoding: gzip (表示请求体本身是 gzip 压缩过的)
8. 其他重要请求头
  • Range

    • 作用:请求资源的一部分。服务器成功处理则返回 206 Partial Content
    • 示例Range: bytes=0-499 (请求前500字节)
  • Expect

    • 作用:指示客户端期望服务器的特定行为。最常见的是 Expect: 100-continue,客户端在发送实际请求体之前,先询问服务器是否接受该请求。如果服务器接受,返回 100 Continue,客户端再发送请求体。
    • 示例Expect: 100-continue
  • TE

    • 作用:指定客户端愿意接受的传输编码(与内容编码不同),通常用于 HTTP 分块传输。
    • 示例TE: trailers, deflate
  • Upgrade

    • 作用:请求服务器升级到另一个协议,例如从 HTTP/1.1 升级到 WebSocket。
    • 示例Upgrade: websocket (通常与 Connection: Upgrade 一起使用)
  • Upgrade-Insecure-Requests

    • 作用:客户端向服务器表明它支持升级到 HTTPS 的机制,并希望服务器将所有 HTTP URL 重定向到 HTTPS。
    • 示例Upgrade-Insecure-Requests: 1
  • DNT (Do Not Track)

    • 作用:表示用户不希望被追踪的偏好。1 表示不追踪,0 表示同意追踪。
    • 示例DNT: 1
9. 安全相关的请求头 (Modern Security Headers - 通常由浏览器自动添加)

这些头部通常与 Fetch API 相关,为服务器提供更多关于请求上下文的信息,以帮助服务器做出更安全的决策,防御 CSRF、XSSI 等攻击。

  • Sec-Fetch-Site

    • 作用:指示请求的来源与目标资源的关系。
    • cross-site, same-origin, same-site, none
    • 示例Sec-Fetch-Site: same-origin
  • Sec-Fetch-Mode

    • 作用:指示请求的模式。
    • cors, navigate, no-cors, same-origin, websocket
    • 示例Sec-Fetch-Mode: cors
  • Sec-Fetch-Dest

    • 作用:指示请求的目标类型。
    • audio, audioworklet, document, embed, empty, font, frame, iframe, image, manifest, object, paintworklet, report, script, serviceworker, sharedworker, style, track, video, worker, xslt
    • 示例Sec-Fetch-Dest: script
  • Sec-Fetch-User

    • 作用:指示导航请求是否由用户激活(例如点击链接)。?1 表示是,?0 表示否。
    • 示例Sec-Fetch-User: ?1
  • Sec-CH-UA (Client Hints - User Agent)

    • 作用:User-Agent Client Hints 是一组头部,旨在以更结构化、更注重隐私的方式取代传统的 User-Agent 字符串。
    • 示例Sec-CH-UA: " Not A;Brand";v="99", "Chromium";v="90", "Google Chrome";v="90"
    • 还有 Sec-CH-UA-Mobile, Sec-CH-UA-Platform 等。

总结:

  • HTTP 请求头是客户端与服务器沟通的重要桥梁。
  • 它们种类繁多,涵盖了内容协商、缓存控制、认证、状态管理等多个方面。
  • 理解这些头部有助于进行高效的 Web 开发、API 设计、性能优化和安全加固。
  • HTTP 协议是可扩展的,除了标准头部,还允许使用自定义头部(通常以 X- 开头,但现在不推荐这种做法,直接使用非标准名称即可)。

希望这个科普能帮助你更好地理解 HTTP 请求头!

相关文章:

学习黑客HTTP 请求头

HTTP 请求头&#xff08;Request Headers&#xff09;是 HTTP 请求中非常重要的一部分&#xff0c;它们以键值对的形式向服务器传递关于请求的附加信息、客户端的能力或上下文。 理解请求头对于 Web 开发、API 交互、网络调试和安全都至关重要。下面我将常见的 HTTP 请求头字段…...

日志参数含义

一 学习率相关 base_lr&#xff1a;基础学习率&#xff0c;初始设定的学习率 -lr&#xff1a;当前实际使用的学习率&#xff0c;通常是 base_lr 经过学习率调整策略后的值&#xff0c;比如lrbase_lr*(1start_factor) 时间统计 time&#xff1a;每次迭代总时间&#xff0c;单位…...

[Linux]安装吧!我的软件包管理器!

一、常见安装方式 在 Linux 中&#xff0c;有 3 种常见的软件安装方式&#xff1a; &#xff08;1&#xff09;yam、apt &#xff08;2&#xff09;.rpm 安装包安装 &#xff08;3&#xff09;源码安装 二、什么是软件包 在 Linux 下安装软件&#xff0c;通常的办法是下载…...

Flink 作业提交流程

Apache Flink 的 作业提交流程&#xff08;Job Submission Process&#xff09; 是指从用户编写完 Flink 应用程序&#xff0c;到最终在 Flink 集群上运行并执行任务的整个过程。它涉及多个组件之间的交互&#xff0c;包括客户端、JobManager、TaskManager 和 ResourceManager。…...

牛客网NC276110题解:小红的数组重排

牛客网NC276110题解&#xff1a;小红的数组重排 题目解析 算法思路 对数组进行排序&#xff08;非降序&#xff09;检查特殊情况&#xff1a; 如果存在三个连续相等的元素&#xff0c;则无解如果前两个元素都是0&#xff0c;则无解 若不存在特殊情况&#xff0c;则排序后的数…...

从零启动 Elasticsearch

elastic 有弹力的 ElaticSearch &#xff08;ES&#xff09;是一个基于 Lucene 的分布式全文检索引擎。可以做到近乎实时地存储、检索数据&#xff0c;并且本身具有良好的扩展性&#xff0c;可以扩展到上百台服务器&#xff0c;处理PB级别&#xff08;1 Petabyte 1024TB&…...

nginx服务器实验

1.实验要求 1&#xff09;在Nginx服务器上搭建LNMP服务&#xff0c;并且能够对外提供Discuz论坛服务。 在Web1、Web2服务器上搭建Tomcat 服务。 2&#xff09;为nginx服务配置虚拟主机&#xff0c;新增两个域名 www.kgc.com 和 www.benet.com&#xff0c;使用http://www.kgc.…...

王树森推荐系统公开课 排序02:Multi-gate Mixture-of-Experts (MMoE)

专家模型 与上一节相同&#xff0c;模型的输入是一个向量&#xff0c;包含用户特征、物品特征、统计特征、场景特征&#xff0c;把向量输入三个神经网络&#xff0c;三个神经网络都是由很多全连接层组成&#xff0c;但是并不共享参数&#xff0c;三个神经网络各输出一个向量&a…...

【OpenCV基础 1】几何变换、形态学处理、阈值分割、区域提取和脱敏处理

目录 一、图像几何变化 1、对图片进行放大、缩小、水平放大和垂直放大 2、旋转、缩放、控制画布大小 二、图像形态学处理 1、梯度运算 2、闭运算 3、礼帽运算 4、黑帽运算 三、图像阈值分割 1、二值化处理 2、反二值化处理 3、截断阈值处理 4、超阈值零处理 5、低…...

代码随想录算法训练营 Day49 图论Ⅰ 深度优先与广度优先

图论 基础 图的概念 图的概念 概念清单有向图 (a)无向图 (b)有向/无向如图 a 所示每条边有指向如图 b 所示每条边没有箭头指向权值每条边的权值每条边的权值度-有几条边连到该节点 (eg V 2 V_2 V2​ 度为 3)入度/出度出度&#xff1a;从该节点出发的边个数入度&#xff1a;…...

LG P9844 [ICPC 2021 Nanjing R] Paimon Segment Tree Solution

Description 给定序列 a ( a 1 , a 2 , ⋯ , a n ) a(a_1,a_2,\cdots,a_n) a(a1​,a2​,⋯,an​)&#xff0c;有 m m m 次修改 ( l , r , v ) (l,r,v) (l,r,v)&#xff1a; 对每个 i ∈ [ l , r ] i\in[l,r] i∈[l,r]&#xff0c;令 a i ← a i v a_i\gets a_iv ai​←…...

PyTorch音频处理技术及应用研究:从特征提取到相似度分析

文章目录 音频处理技术及应用音频处理技术音视频摘要技术音频识别及应用 梅尔频率倒谱系数音频特征尔频率倒谱系数简介及参数提取过程音频处理快速傅里叶变换(FFT)能量谱处理离散余弦转换 练习案例&#xff1a;音频建模加载音频数据源波形变换的类型绘制波形频谱图波形Mu-Law 编…...

【IPMV】图像处理与机器视觉:Lec10 Edges and Lines

【IPMV】图像处理与机器视觉&#xff1a;Lec10 Edges and Lines 本系列为2025年同济大学自动化专业**图像处理与机器视觉**课程笔记 Lecturer: Rui Fan、Yanchao Dong Lec0 Course Description Lec3 Perspective Transformation Lec7 Image Filtering Lec8 Image Pyramid …...

Elasticsearch 初步认识

Elasticsearch 初步认识 1 索引&#xff08;index&#xff09; 索引是具有相同结构的文档集合。例如&#xff0c;可以有一个客户信息的索引&#xff0c;包括一个产品目录的索引&#xff0c;一个订单数据的索引。在系统上索引的名字全部小写&#xff0c;通过这个名字可以用来执…...

数据库DDL

数据库DDL&#xff08;数据定义语言&#xff09;全面解析 一、DDL定义 DDL&#xff08;Data Definition Language&#xff0c;数据定义语言&#xff09;是SQL语言的一个子集&#xff0c;专门用于定义和管理数据库结构。它允许数据库管理员和开发人员创建、修改和删除数据库对象…...

企业级小程序APP用户数据查询系统安全脆弱性分析及纵深防御体系构建

一、用户数据查询系统安全现状分析 1.1 业务场景风险建模 在企业小程序用户数据查询业务中&#xff0c;普遍存在以下安全风险点&#xff1a; ①输入验证缺失&#xff1a;未对姓名、身份证号等关键输入进行严格的格式校验与合法性检查 ②身份认证薄弱&#xff1a;仅依赖基础参数…...

互联网大厂Java面试:从Spring Boot到微服务架构的技术深挖

场景描述 在某互联网大厂的面试会议室里&#xff0c;严肃的面试官老王正审视着面前的程序员明哥。这场面试以业务场景为切入点&#xff0c;围绕Java技术栈展开。 第一轮&#xff1a;基础知识与Spring生态 面试官老王&#xff1a; 明哥&#xff0c;你对Spring Boot的核心功能…...

23种设计模式解释+记忆

一、创建型模式&#xff08;5种&#xff09;—— “怎么造对象&#xff1f;” 单例模式&#xff08;Singleton&#xff09; 场景&#xff1a;公司的CEO只能有一个。 核心&#xff1a;确保一个类只有一个实例&#xff0c;全局访问。 关键词&#xff1a;唯一、全局访问。 工厂方…...

逻辑与非逻辑的弥聚

非逻辑弥聚与逻辑弥聚是复杂系统中两种不同的信息整合方式。逻辑弥聚侧重于通过明确的规则、规律和结构化方法&#xff0c;将分散的信息或功能进行有序的组织和集中处理&#xff0c;强调理性和确定性。而非逻辑弥聚则更多地涉及情感、直觉、经验等非线性、非结构化的因素&#…...

Python 从列表中删除值的多种实用方法详解

# Python 从列表中删除值的多种实用方法详解 在Python编程中&#xff0c;列表&#xff08;List&#xff09;是一种常用的数据结构&#xff0c;具有动态可变的特性。当我们需要从列表中删除元素时&#xff0c;根据不同的场景&#xff08;如按值删除、按索引删除、批量删除等&…...

C++多线程数据错乱

C多线程数据错乱&#xff08;也称为线程安全问题或数据竞争&#xff09;主要是由于多个线程在没有正确同步的情况下&#xff0c;并发访问和修改共享数据导致的。其主要原因包括以下几个方面: 一、线程交替执行导致的非原子操作 线程在执行时&#xff0c;可能会在中途被挂起&a…...

StarRocks Community Monthly Newsletter (Apr)

版本动态 3.4.3 版本更新 核心功能升级 Routine Load和Stream Load新增Lambda表达式支持&#xff0c;支持复杂的列数据提取 增强JSON数据处理能力&#xff0c;支持将JSON Array/Object转为ARRAY/MAP类型 优化information_schema.task_runs视图查询&#xff0c;新增LIMIT支持…...

延时双删-争议与我的思路-001

目录 概括大概思路目的场景思路一退货时间差 思路2思路3 最后 概括 延时双删,是指在代码中删除两次缓存. 第一次自己访问,先删除.之后直接访问数据库获得数据 第二次是指 在第一步之后,在删除一次缓存的数据 大概思路 不进行延时双删的.寻找别的解决方法 目的 主要是为了…...

Tomcat简述介绍

文章目录 Web服务器Tomcat的作用Tomcat分析目录结构 Web服务器 Web服务器的作用是接收客户端的请求&#xff0c;给客户端作出响应。 知名Java Web服务器 Tomcat&#xff08;Apache&#xff09;&#xff1a;用来开发学习使用&#xff1b;免费&#xff0c;开源JBoss&#xff0…...

掌握版本控制从本地到分布式

一、什么是版本控制&#xff1f; 版本控制是一种记录文件&#xff08;尤其是源代码&#xff09;在“时间轴”上变更的系统&#xff0c;主要功能包括&#xff1a; 历史回溯&#xff1a;随时恢复到任意版本的代码或文档&#xff1b;差异比较&#xff1a;查看两个版本之间的改动…...

Linux `touch` 命令深度解析与高阶应用指南

Linux `touch` 命令深度解析与高阶应用指南 一、核心功能解析1. 基本作用2. 与类似操作对比二、选项系统详解1. 基础选项说明2. 时间格式说明三、高阶应用技巧1. 时间戳控制2. 批量文件操作3. 特殊文件处理四、企业级应用场景1. 日志系统维护2. 持续集成系统3. 安全审计跟踪五、…...

Django学习

1&#xff1a;在PyCharm终端&#xff1a; # 查看已安装的Django版本 python -m django --version # 或 pip show django # 卸载当前Django pip uninstall django# 安装指定版本&#xff08;例如Django 3.2.10&#xff09; pip install django3.2.10 2. 检查Python版本兼容性 …...

Java IO框架

I/O框架 流 流的分类&#xff1a; 按方向&#xff1a; 输入流&#xff1a;将存储设备的内容读入到内存中 输出流&#xff1a;将内存的内容写入到存储设备中 按单位&#xff1a; 字节流&#xff1a;以字节为单位&#xff0c;可以读取所有数据 字符流&#xff1a;以字符为单…...

Spring AI Alibaba集成阿里云百炼大模型

1.准备工作 开发环境&#xff1a;JDK17、SpringBoot3.x 2.引入maven依赖 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance&q…...

5月18总结

一.算法题总结 1. 解题思路&#xff1a;对于这个题&#xff0c;我最开始想到就是二分&#xff0c;但是头痛的是有三个解&#xff0c;如果我在-100到100之间二分&#xff0c;那么只能得出一个解&#xff0c;然后我就想了一下&#xff0c;这个要求精度&#xff0c;那么0.01这么小…...

动态规划(4)可视化理解:图形化思考

引言 动态规划作为一种强大的算法设计范式,其抽象性常常使初学者感到困惑。许多学习者在理解状态定义、状态转移方程和递归结构时遇到困难,这些困难往往源于动态规划问题的高度抽象性和复杂性。然而,人类的大脑天生擅长处理视觉信息,通过将抽象的动态规划概念转化为直观的…...

2025年- H31-Lc139- 242.回文链表(快慢指针)---java版--需2刷

1.题目描述 2.思路 &#xff08;1&#xff09;将链表取中位数&#xff0c;分为左右两部分。 &#xff08;2&#xff09;右半部分的元素进行反转链表&#xff0c;能达到O&#xff08;1&#xff09;的空间复杂度 &#xff08;3&#xff09;再判断左右部分的元素&#xff0c;是否…...

云原生安全:IaaS安全全解析(从基础到实践)

🔥「炎码工坊」技术弹药已装填! 点击关注 → 解锁工业级干货【工具实测|项目避坑|源码燃烧指南】 一、基础概念:IaaS的核心价值与安全边界 1.1 什么是IaaS? 基础设施即服务(Infrastructure as a Service)是云计算的基础层,提供虚拟机、存储、网络等基础资源。用户通过…...

【AGI】大模型微调数据集准备

【AGI】大模型微调数据集准备 &#xff08;1&#xff09;模型内置特殊字符及提示词模板&#xff08;2&#xff09;带有系统提示和Function calling微调数据集格式&#xff08;3&#xff09;带有思考过程的微调数据集结构&#xff08;4&#xff09;Qwen3混合推理模型构造微调数据…...

二分算法的介绍简单易懂

目录 1.概论 2.朴素的二分算法 3.求左端点的二分算法和求右端点的二分算法 4.总结 1.概论 要想了解什么是二分算法&#xff0c;我们就要知道什么是二分算法&#xff0c;二分算法是根据数组的规律&#xff0c;每次查找的数据原来的效率可能要O&#xff08;n&#xff09;,而我…...

Trae IDE和VSCode Trae插件初探

Trae IDE初探 输入以下提示词&#xff1a; 生成一个to do list清单web页面&#xff0c;采用vue实现&#xff0c;可以在页面上进行todolist进行增删改查。​ VSCode Trae插件初探 trae vscode插件初探 tips&#xff1a;如果还是提示找不到npm命令&#xff0c;重启vscode即可&am…...

数据结构 -- 树形查找(三)红黑树

红黑树 为什么要发明红黑树 平衡二叉树AVL&#xff1a;插入/删除很容易破坏平衡性&#xff0c;需要频繁调整树的形态。如&#xff1a;插入操作导致不平衡&#xff0c;则需要先计算平衡因子&#xff0c;找到最小不平衡子树&#xff08;时间开销大&#xff09;&#xff0c;在进行…...

Mac 在恢复模式下出现 旋转地球图标 但进度非常缓慢

如果您的 Mac 在恢复模式下出现 旋转地球图标 但进度非常缓慢&#xff0c;可能是由于网络连接或系统恢复机制的问题。以下是详细的解决方案&#xff1a; 1. 检查网络连接 • Wi-Fi 信号&#xff1a;确保您的 Wi-Fi 信号稳定&#xff0c;建议靠近路由器或使用有线网络&#xff…...

【YOLO(txt)格式转VOC(xml)格式数据集】以及【制作VOC格式数据集 】

1.txt—>xml转化代码 如果我们手里只有YOLO标签的数据集&#xff0c;我们要进行VOC格式数据集的制作首先要进行标签的转化&#xff0c;以下是标签转化的脚本。 其中picPath为图片所在文件夹路径&#xff1b; txtPath为你的YOLO标签对应的txt文件所在路径&#xff1b; xmlPa…...

【信息系统项目管理师】第8章:项目整合管理 - 39个经典题目及详解

更多内容请见: 备考信息系统项目管理师-专栏介绍和目录 文章目录 【第1题】【第2题】【第3题】【第4题】【第5题】【第6题】【第7题】【第8题】【第9题】【第10题】【第11题】【第12题】【第13题】【第14题】【第15题】【第16题】【第17题】【第18题】【第19题】【第20题】【第…...

“Cloud Native English“云原生时代下的微服务架构设计:从理论到实战全解析

前引 &#xff1a;技术演进与架构变革的必然性 在数字经济高速发展的今天&#xff0c;软件系统的复杂度呈指数级增长。传统单体架构已无法满足高并发、弹性扩展和快速迭代的需求。根据Gartner预测&#xff0c;到2026年全球75%的企业将完成微服务架构改造。本文将深入探讨云原生…...

自由学习记录(61)

使用了 #pragma multi_compile_fwdbase 这条编译指令启用了 Unity 内部用于主光源阴影支持的一组关键词变体&#xff0c;如&#xff1a; SHADOWS_SCREEN&#xff08;屏幕空间阴影贴图&#xff09; SHADOWS_DEPTH&#xff08;深度图阴影&#xff09; SHADOWS_SOFT&#xff08…...

深入了解linux系统—— 基础IO(下)

前言 在基础IO&#xff08;上&#xff09;中&#xff0c;我们了解了文件相关的系统调用&#xff1b;以及文件描述符是什么&#xff0c;和操作系统是如何将被打开的文件管理起来的。 本篇文章来继续学习文件相关的知识 重定向 在了解重定向之前&#xff0c;我们先来看这样的…...

Flink Table SQL

Apache Flink 提供了强大的 Table API 和 SQL 接口&#xff0c;用于统一处理批数据和流数据。它们为开发者提供了类 SQL 的编程方式&#xff0c;简化了复杂的数据处理逻辑&#xff0c;并支持与外部系统集成。 &#x1f9e9; 一、Flink Table & SQL 核心概念 概念描述Table…...

【Git】基本操作

【简介】 Git是一种“版本控制器”&#xff0c; 可以用于记录每次的修改以及版本的迭代 其可以控制电脑上所有格式的文件&#xff0c;方便地查看文件的每个小修改版本都修改了什么内容&#xff0c;但前提条件是被管理的文件需要放在对应的git仓库&#xff08;又名“版本库”&…...

【八股战神篇】MySQL高频面试题

目录 专栏简介 一 什么是索引 延伸 1 索引的底层使用的是什么数据结构&#xff1f; 2 MySQL 索引分类有哪些&#xff1f; 3 什么字段适合创建索引&#xff1f; 4 索引失效的场景 5 什么是最左匹配原则&#xff1f; 二 为什么 InnoDB 存储引擎选用 B 树而不是 B 树呢&a…...

服务器防文件上传手写waf

一、waf的目录结构&#xff0c;根据自己目录情况进行修改 二、创建文件夹以及文件 sudo mkdir -p /www/server/waf-monitor sudo mkdir -p /www/server/waf-monitor/quarantine #创建文件夹 chmod 755 /www/server/waf-monitor #赋权cd /www/server/waf-monitor/touch waf-m…...

ElasticSearch-集群

本篇文章依据ElasticSearch权威指南进行实操和记录 1&#xff0c;空集群 即不包含任何节点的集群 集群大多数分为两类&#xff0c;主节点和数据节点 主节点 职责&#xff1a;主节点负责管理集群的状态&#xff0c;例如分配分片、添加和删除节点、监控节点故障等。它们不直接…...

Android开发——原生渲染方案实现 PDF 预览功能

Android开发——原生渲染方案实现 PDF 预览功能 1. 引言2. 原生渲染方案核心设计:从数据到视图3. 混合文档容器:ViewPager2 与适配器设计1. 引言 在移动应用开发中,PDF 预览是文档处理场景的核心需求之一。Android 生态提供了多元化的技术方案,从系统级简版预览到原生渲染…...

Java求职者面试:从Spring Boot到微服务的技术点解析

Java求职者面试&#xff1a;从Spring Boot到微服务的技术点解析 场景&#xff1a;互联网医疗-预约挂号系统 面试官&#xff1a; “小明&#xff0c;我们今天的场景是一个互联网医疗的预约挂号系统。我们需要支持高并发的用户预约操作&#xff0c;同时保证数据一致性和系统的高…...