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

2025年如何避免使用验证码求解器时被IP封禁

引言

2025年,验证码求解器已成为自动化网络抓取和其他在线流程的关键工具。然而,自动化用户面临的一个常见挑战是IP封禁。当网站检测到自动化活动时,通常会阻止发出请求的IP地址,导致验证码挑战无法解决。本文将探讨使用验证码求解器时避免IP封禁的实用策略。

1. IP封禁基础知识

IP封禁是网站或在线服务实施的一种安全措施,用于阻止特定IP地址访问其资源。从本质上讲,当您的IP地址被封禁时,您将无法再访问该网站,就像被网站的"保安"挡在了门外一样。

网站会检测并记录发出请求的用户的IP地址。当IP地址被列入黑名单后,来自该地址的所有请求都将被拒绝访问。

1.1 IP封禁持续时间

IP封禁持续时间没有统一标准;它取决于网站的封锁策略和封锁的原因。

1.2 IP封禁的类型

一般来说,IP封禁可以分为以下几种类型,持续时间各不相同:

  • 临时封禁: 这是最常见的IP封禁类型。它通常是由于短时间内请求频率过高(超过网站的速率限制)而发生的。这些封禁通常持续时间较短,从几分钟到几小时不等。
  • 半永久封禁: 这种封禁通常发生在检测到可疑行为但网站不确定其是否为恶意行为时。这种封禁的持续时间可能比临时封禁更长,例如几小时到几天。
  • 永久封禁: 这是最严重的IP封禁类型。它通常是由于严重违反网站的服务条款或恶意活动造成的。永久封禁意味着您的IP地址将被永久列入黑名单。

2. 自动化验证码求解与IP封禁管理

自动化验证码求解是一种用于解决验证码验证的技术,但它本身并不能解决IP封禁问题。事实上,频繁触发验证码挑战通常是您的IP即将被封禁的警告信号。在使用验证码求解器时,管理和防止IP封禁至关重要,因为它可以确保自动化流程能够顺利进行,不会中断。

2.1 IP封禁的主要原因

在使用验证码求解器进行自动化时,有几个因素可能导致IP封禁:

  1. 请求频率过高 - 在短时间内向网站发送过多的请求可能会使服务器不堪重负并触发IP封禁。
  2. 地理位置封锁 - 某些网站可能会限制某些地理位置用户的访问。
  3. 暴力攻击 - 在短时间内反复登录失败或尝试猜测密码是暴力攻击的典型迹象。
  4. 共享IP地址 - 如果您使用的是共享IP地址,如果同一IP上的其他人执行了禁止的活动,您的访问可能会受到影响。

2.2 如何确定您的IP是否已被封禁

以下是一些您的IP可能已被封禁的常见迹象:

  • 403禁止错误: 当IP被阻止时,这是最常见的错误消息之一。
  • 429请求过多: "429"错误表明您正在受到速率限制。
  • 连接超时: 如果网站无法加载并且您收到超时错误,则可能表示IP已被封禁。
  • 频繁的验证码挑战: 如果您反复遇到验证码挑战,您的IP可能正在受到密切关注。

3. 避免IP封禁的最佳实践

为了在使用验证码求解器时避免IP被封禁,请考虑以下策略:

3.1 使用验证码求解服务

集成专业的验证码求解服务可以确保您的请求得到有效处理。这些服务可以解决reCAPTCHA和其他验证码挑战,而不会过度依赖单个IP。

以下是一个基本的代码示例:

import requests
import time
from DrissionPage import ChromiumPage# 初始化ChromiumPage
page = ChromiumPage()
page.get("https://www.google.com/recaptcha/api2/demo")# API设置
api_key = "your_api_key"  # 请替换为您的实际API密钥
site_key = "your_site_key"  # 请替换为目标页面的实际站点密钥
site_url = "https://www.google.com/recaptcha/api2/demo"  # 请替换为目标URLdef solve_captcha():payload = {"clientKey": api_key,"task": {"type": 'ReCaptchaV2TaskProxyLess',"websiteKey": site_key,"websiteURL": site_url}}response = requests.post("https://api.example.com/createTask", json=payload)task_id = response.json().get("taskId")while True:time.sleep(3)  # 等待,然后再检查任务结果res = requests.post("https://api.example.com/getTaskResult", json={"clientKey": api_key, "taskId": task_id})result = res.json()if result.get("status") == "ready":return result.get("solution", {}).get('gRecaptchaResponse')# 使用验证码解决方案绕过验证码
def check_and_solve():token = solve_captcha()page.run_js(f'document.getElementById("g-recaptcha-response").value="{token}"')page.run_js(f'onSuccess("{token}")')page.ele('x://input[@id="recaptcha-demo-submit"]').click()check_and_solve()

3.2 使用代理池

轮换代理允许您将请求分散到多个IP地址,从而降低触发IP封禁的风险。可以使用代理池在每次请求或一批请求后轮换您的IP地址,确保您的真实IP地址保持隐藏状态。

3.3 控制请求频率

模拟自然用户行为是避免封禁的关键。不要在短时间内向网站发送大量请求,而是将请求分散开来,并通过间歇性地访问不同的页面来模拟人工交互。

3.4 随机化浏览器指纹和用户代理

通过随机化您的浏览器指纹和用户代理字符串,您可以伪装您的请求,并使其看起来像是来自不同的用户,从而避免被反机器人系统检测到。这使得网站更难以识别和阻止您。

结语

为了成功地自动化网络抓取并避免IP封禁,至关重要的是要使用强大的验证码求解工具以及有效的IP管理策略。通过模拟真实的用户行为,使用代理分发请求,并有效地利用验证码服务,您可以显著降低被反抓取系统阻止的可能性。

常见问题

Q1:抓取网站时,防止IP封禁的最佳方法是什么?

A1:使用代理、控制请求频率和使用验证码求解服务是避免IP封禁最有效的策略。

Q2:IP封禁持续多久?

A2:IP封禁的持续时间取决于网站的策略。它们可以从持续几分钟或几小时的临时封禁到对严重违规行为的永久封禁不等。

Q3:如何判断我的IP是否被封禁?

A3:常见的迹象包括收到403或429错误代码、遇到超时以及更频繁地遇到验证码挑战。

相关文章:

2025年如何避免使用验证码求解器时被IP封禁

引言 2025年,验证码求解器已成为自动化网络抓取和其他在线流程的关键工具。然而,自动化用户面临的一个常见挑战是IP封禁。当网站检测到自动化活动时,通常会阻止发出请求的IP地址,导致验证码挑战无法解决。本文将探讨使用验证码求…...

前端 AI IDE应用优缺点

嗯,用户问了三个前端面试的问题,我需要仔细分析每个问题,并结合提供的搜索结果来给出全面且准确的回答。 第一个问题是关于开发工具Cursor或Vim的Windurf在开发中的占比以及它们的缺点。从搜索结果里看,网页3提到了Trae对标Curso…...

银河麒麟桌面版包管理器(二)

APT包管理器 APT是Debian及其派生系统的包管理器,构建在dpkg之上,以其强大的依赖性处理能力和丰富的软件仓库而闻名。APT具有自动解决依赖关系、提供易于使用的命令行工具(如apt-get、apt-cache等),以及稳定的软件更新…...

Leetcode 3494. Find the Minimum Amount of Time to Brew Potions

Leetcode 3494. Find the Minimum Amount of Time to Brew Potions 1. 解题思路2. 代码实现 题目链接:3494. Find the Minimum Amount of Time to Brew Potions 1. 解题思路 这道题虽说算是搞定了,通过了全部的测试样例,不过还是很暴力的求…...

制作Oracle11g Docker 镜像

基于Linux系统&#xff0c;宿主主机要设置如下环境变量&#xff0c;oracle为64位版本 dockerfile中需要的数据库安装包可从csdn下载内找到 #!/bin/bash # 在宿主机上运行以设置Oracle所需的内核参数 # 这些命令需要root权限cat > /etc/sysctl.d/99-oracle.conf << EO…...

rocky linux下载软件

一、配置国内镜像源加速下载 Rocky Linux 默认使用国外软件源&#xff0c;国内用户可通过替换为阿里云镜像提升下载速度&#xff1a; 备份原配置文件&#xff1a; cp -r /etc/yum.repos.d /etc/yum.repos.d.backup 修改镜像源&#xff1a; sed -e s|^mirrorlist|#mirrorli…...

JVM的组成--运行时数据区

JVM的组成 1、类加载器&#xff08;ClassLoader&#xff09; 类加载器负责将字节码文件从文件系统中加载到JVM中&#xff0c;分为&#xff1a;加载、链接&#xff08;验证、准备、解析&#xff09;、和初始化三个阶段 2、运行时数据区 运行时数据区包括&#xff1a;程序计数…...

SpringBoot中安全的设置阿里云日志SLS的accessKey

众所周知,阿里云的服务都是基于accesskeyId和accesskeySecret来进行身份鉴权的,但唯独日志因为需要写入到.xml文件里对于accesskeyId和accesskeySecret需要进行一定程度的改进,尤其是使用了jasypt进行加密的参数传递进去logback.xml更是会遇到需要对参数进行解密的问题,而官网只…...

DeepSeek 助力 Vue3 开发:打造丝滑的表格(Table)之添加导出数据功能示例11,TableView15_11带分页的导出表格示例

前言&#xff1a;哈喽&#xff0c;大家好&#xff0c;今天给大家分享一篇文章&#xff01;并提供具体代码帮助大家深入理解&#xff0c;彻底掌握&#xff01;创作不易&#xff0c;如果能帮助到大家或者给大家一些灵感和启发&#xff0c;欢迎收藏关注哦 &#x1f495; 目录 Deep…...

C++多线程编程:从创建到管理的终极指南

在高性能计算时代,掌握多线程编程是提升程序效率的必修课!本文将手把手教你如何用C++11标准库轻松创建和管理线程,告别单线程的“龟速”,让代码跑出多核CPU的性能! 一、多线程为何重要? 充分利用多核CPU:现代计算机普遍支持多核并行,多线程可让程序性能指数级提升。提升…...

人工智能算法基础

基础算法 排序查找线性结构树散列图堆栈 机器学习算法 定义&#xff1a;数据算法 流程&#xff1a;数据收集与预处理、特征选择、训练和测试模型、模型的评估。 监督学习 定义&#xff1a;是从给定的训练数据集中学习出一个函数&#xff0c;当新的数据到来时&#xff0c;可…...

Normal distribution (正态分布)

Normal distribution {正态分布} 1. Normal distribution (正态分布) Gaussian distribution (高斯分布)1.1. Probability density function (概率密度函数)1.2. Standard normal distribution (标准正态分布)1.3. Cumulative distribution function (累积分布函数) 2. 正态分…...

企业级前端架构设计与实战

一、架构设计核心原则 1.1 模块化分层架构 典型目录结构&#xff1a; src/├── assets/ # 静态资源├── components/ # 通用组件├── pages/ # 页面模块├── services/ # API服务层├── store/ # 全局状态管理├── uti…...

数据模型,数据建模,组件,核心价值,使用,意义

数据模型 一组由符号,文本组成的集合, 用以准确表达信息景观, 达到有效交流,沟通的目的 数据建模 是发现,分析和确定数据需求的过程,是一种称为数据模型的精确形式表示和传递这些需求 数据模型的组件 实体, 关系, 属性和域 数据模型的核心价值 交流性 精确性 数据模型的…...

JavaScript 比较运算符

JavaScript 比较运算符 一、基础比较运算符类型 运算符名称示例核心特性==宽松相等"5" == 5 → true隐式类型转换===严格相等"5" === 5 → false类型+值双重校验!=宽松不等null != 0 → true等效于 !(a == b)!==严格不等5 !== "5" → true类型或…...

AI Agent战国时代:Manus挑战者的破局之道与技术博弈

随着Manus引爆通用型AI Agent的"手脑协同"革命&#xff0c;全球AI Agent赛道进入技术竞速期。Flowith、UI-TARS、LangManus等新势力通过差异化路径重构市场格局&#xff0c;背后折射出开源生态、本土化创新与跨模态交互的深层技术博弈。本文结合行业权威报告与公开技…...

linux--时区查看和修改

查看当前时间和时区: 打开终端&#xff0c;输入以下命令查看当前的日期和时间设置&#xff1a; timedatectl修改时区: 使用 timedatectl 命令来修改时区&#xff1a; sudo timedatectl set-timezone <时区>例如&#xff0c;设置时区为北京时间&#xff08;中国标准时间&a…...

个人博客系统 --- 测试报告

一、项目功能介绍 该项目由&#xff1a;登录模块、博客首页模块、博客详情页模块、博客编辑页模块四个功能模块组成。 该系统实现了个人博客的保存以及记录了发布日期、时间、发布人等信息。 二、测试内容与测试用例 我们需要对该系统进行功能测试&#xff0c;界面测试&…...

ESP32S3基于FreeRTOS实时操作系统控制舵机

这段代码是一个基于ESP32的舵机控制示例&#xff0c;通过MCPWM模块配置定时器、操作符、比较器和发生器&#xff0c;生成特定脉冲宽度的PWM信号&#xff0c;控制舵机在 -60度到60度之间以2度为步长往复转动。 1. 源码部分 #include "freertos/FreeRTOS.h" #include…...

【vue的some和filter】

在 Vue 中&#xff0c;some 和 filter 是两种不同的数组方法&#xff0c;分别用于处理数据筛选和条件判断。以下是它们在 Vue 中的具体用法和区别&#xff1a; 一、filter 方法 作用&#xff1a;对数组进行过滤&#xff0c;返回符合条件的新数组。 使用场景&#xff1a;常用于…...

【LC插件开发】基于Java实现FSRS(自由间隔重复调度算法)

&#x1f60a;你好&#xff0c;我是小航&#xff0c;一个正在变秃、变强的文艺倾年。 &#x1f514;本文讲解【LC插件开发】基于Java实现FSRS&#xff08;自由间隔重复调度算法&#xff09;&#xff0c;期待与你一同探索、学习、进步&#xff0c;一起卷起来叭&#xff01; 目录…...

jupyter 操作相关内容

1、jupyter界面美化 pip3 install jupyterthemes查看可用主题 jt -l推荐两个 jt -t grade3 -f consolamono -fs 140 -tfs 13 -nfs 115 -ofs 14 -cellw 90% -Tjt -t chesterish -f consolamono -fs 140 -altp -tfs 13 -nfs 115 -ofs 14 -cellw 90% -T...

【数据结构】单链表

目录 一、什么是链表&#xff1f;1、 定义2、链表的分类 二、无头单向非循环链表1、结构2、单链表数据的打印3、创建结点并初始化4、尾插5、头插6、尾删7、头删8、查找9、在指定位置pos之前插入数据10、在指定位置pos之后插入数据11、删除pos结点12、删除pos之后的结点13、销毁…...

UnoCSS极速入门:下一代原子化CSS引擎实战指南

文章目录 一、什么是UnoCSS&#xff1f;二、环境配置&#xff08;Vite示例&#xff09;三、核心使用模式3.1 自定义规则3.2 原子化类应用3.3 使用RegExp匹配器 四、高级功能解析4.1 主题系统4.2 响应式与深色模式 五、实战案例&#xff1a;构建现代按钮组件六、性能优化技巧七、…...

Es6进阶

class里的get和set 在 ES6 中&#xff0c;class 里的 get 和 set 是用于定义访问器属性的关键字。get 方法可在访问对象属性时调用&#xff0c;set 方法则在设置对象属性时调用。下面通过一个简单示例来介绍它们的用法&#xff1a; javascript class Person {constructor(nam…...

可发1区的创新思路:​基于K-means聚类的EMD-BiLSTM-CNN-Attention时间序列预测模型(功率预测、寿命预测、流量预测、故障诊断)

首先声明,该模型为原创!原创!原创! 一、应用场景 该模型主要用于时间序列数据预测问题,包含功率预测、电池寿命预测、交通流量预测、电机故障检测等等。 二、模型整体介绍(本文以光伏功率预测为例) 核心架构 ​数据聚类:K-means对风电场机组分组,降低异质性干扰。​…...

Android BLE 权限管理

前言 android 权限一直是比较活跃的 在蓝牙权限这一块又分新版和旧版 新版权限 android.Manifest.permission.BLUETOOTH_SCAN, android.Manifest.permission.BLUETOOTH_ADVERTISE, android.Manifest.permission.BLUETOOTH_CONNECT旧版权限如9.0以下 Manifest.permission.A…...

vue3 ts 注册全局组件

vue3 ts 注册全局组件 register.tsmain.ts register.ts // 注册全局组件 import {App} from "vue" import headerPage from "/headerPage.vue" export default {install(app:App){app.component("headerPage",headerPage)} }main.ts import re…...

Apache Doris学习

https://doris.apache.org/zh-CN/docs/gettingStarted/what-is-apache-doris 介绍 Apache Doris 是一款基于 MPP 架构&#xff08;大规模并行处理&#xff09;的高性能、实时分析型数据库。它以高效、简单和统一的特性著称&#xff0c;能够在亚秒级的时间内返回海量数据的查询…...

llama源码学习·model.py[7]Transformer类

一、源码展示 class Transformer(nn.Module):def __init__(self, params: ModelArgs):super().__init__()self.params paramsself.vocab_size params.vocab_sizeself.n_layers params.n_layersself.tok_embeddings VocabParallelEmbedding(params.vocab_size, params.dim,…...

Windows server 2022域控制服务器的配置

Windows server 2022介绍 一、核心特性与改进 安全核心服务器&#xff08;Secured-Core Server&#xff09; 硬件级安全&#xff1a;支持基于硬件的安全功能&#xff08;如TPM 2.0、Secure Boot、基于虚拟化的安全防护VBS&#xff09;&#xff0c;防止固件攻击。受信任的启动链…...

yolo目标检测算法在DJI上的研究分析(大纲)

yolo目标检测算法在DJI上的研究分析 面向边缘计算的实时目标检测系统设计与部署 第一章 绪论 1.1 研究背景与意义 目标检测技术需求&#xff1a; DJI设备&#xff08;如无人机、摄像头&#xff09;在安防、巡检、农业等场景中的广泛应用现有YOLO算法在高分辨率图像或资源受限…...

三、重学C++—C语言内存管理

上一章节&#xff1a; 二、重学C—C语言核心-CSDN博客https://blog.csdn.net/weixin_36323170/article/details/146191640?spm1001.2014.3001.5502 本章节代码&#xff1a; cPart2 CuiQingCheng/cppstudy - 码云 - 开源中国https://gitee.com/cuiqingcheng/cppstudy/tree/…...

DAY37 动态归化Ⅰ基础题目

509. 斐波那契数 - 力扣&#xff08;LeetCode&#xff09; class Solution { public:int fib(int n) {if(n<1) return n;int dp[2];dp[0]0;dp[1]1;int sum0;for(int i2;i<n;i){sum dp[0]dp[1];dp[0]dp[1];dp[1]sum;}return sum;} }; 70. 爬楼梯 - 力扣&#xff08;Lee…...

ABAP Core Data Services (SAP PRESS) (First Edition)

ABAP Core Data Services (SAP PRESS) (First Edition)...

ORM——对象关系映射

对象关系映射&#xff08;ORM&#xff09;深度解析&#xff1a;原理、优势与应用场景 一、什么是ORM&#xff1f; ORM&#xff08;Object-Relational Mapping&#xff09;即对象关系映射&#xff0c;是一种将面向对象编程中的对象与关系型数据库中的表进行映射的技术。简单来…...

【Docker系列五】Docker Compose 简介

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…...

大语言模型-2.2/3-主流模型架构与新型架构

简介 本博客内容是《大语言模型》一书的读书笔记&#xff0c;该书是中国人民大学高瓴人工智能学院赵鑫教授团队出品&#xff0c;覆盖大语言模型训练与使用的全流程&#xff0c;从预训练到微调与对齐&#xff0c;从使用技术到评测应用&#xff0c;帮助学员全面掌握大语言模型的…...

JAVA组件的利用漏洞 Shlr搜索引擎 shiro身份 Log4j日志

solr组件 1、作用 &#xff1a; 基于http和apache lucene 进行全文搜索服务器 2、识别&#xff1a; 第一个就是图标类似于华为的那个 然后就是端口标识是 8983 3、CVE利用&#xff1a; 1、命令执行&#xff08;CVE-2019-17558&#xff09; Apache Solr 5.0.0版本至8…...

MongoDB未授权访问漏洞

1、连接MongoDB&#xff0c;添加账号密码 mongo 127.0.0.1 use admindb.createUser({user: admin,pwd: MongoDB123%.com,roles:[{role: root,db: admin}] })创建admin用户&#xff0c;密码为&#xff1a;MongoDB123%.com 2、设置完成&#xff0c;可以通过指令 show users 查看…...

CVPR2025 | 对抗样本智能安全方向论文汇总 | 持续更新中~

汇总结果来源&#xff1a;CVPR 2025 Accepted Papers 若文中出现的 论文链接 和 GitHub链接 点不开&#xff0c;则说明还未公布&#xff0c;在公布后笔者会及时添加. 若笔者未及时添加&#xff0c;欢迎读者告知. 文章根据题目关键词搜索&#xff0c;可能会有遗漏. 若笔者出现…...

MyBatis 动态 SQL 优化:标签的实战与技巧

目录 动态SQL详解一、动态SQL的核心概念1.1 什么是动态SQL&#xff1f;1.2 动态SQL的优点1.3 动态SQL的常见用途 二、动态SQL的常见用法&#xff08;XML方式&#xff09;2.1 < if > 标签2.2 < trim> 标签2.3 <where>标签2.4<set>标签2.5 <foreach&g…...

自动化机器学习(TPOT优化临床试验数据)

目录 自动化机器学习(TPOT优化临床试验数据)1. 引言2. 项目背景与意义2.1 临床试验数据分析的重要性2.2 自动化机器学习的优势2.3 工业级数据处理与GPU加速需求3. 数据集生成与介绍3.1 数据集构成3.2 数据生成方法4. 自动化机器学习与TPOT4.1 自动化机器学习简介4.2 TPOT在临…...

spring boot3 验证码工具kaptcha使用

1、pom.xml文件&#xff0c;下载验证码工具kaptcha依赖 官网搭建的spring boot项目 <!--验证码工具kaptcha的依赖--> <dependency><groupId>com.github.penggle</groupId><artifactId>kaptcha</artifactId> </dependency> 阿里云…...

Android 根据Url使用Retrofit框架进行文件下载

一、背景 根据后端返回的url下载地址,去执行文件下载&#xff0c;将文件保存到SD卡。这里使用Retrofit网络框架。 二、代码实现 2.1、定义一个DownloadFileService interface DownloadFileService {StreamingGETsuspend fun downloadFile(Url fileUrl: String):ResponseBody…...

可视化动态表单动态表单界的天花板--Formily(阿里开源)

文章目录 1、Formily表单介绍2、安装依赖2.1、安装内核库2.2、 安装 UI 桥接库2.3、Formily 支持多种 UI 组件生态&#xff1a; 3、表单设计器3.1、核心理念3.2、安装3.3、示例源码 4、场景案例-登录注册4.1、Markup Schema 案例4.2、JSON Schema 案例4.3、纯 JSX 案例 1、Form…...

Java常用类

常用类 1.包 2.String类 3.String注意事项 String是不可变字符串对象。只要是以“ …. ”方式写出的字符串对象,会存储到字符串常量池,且相同内容的字符串只存储一份。但通过new方式创建字符串对象,每new一次都会产生一个新的对象放在堆内存中。String s2 s1 "a"…...

多模态大模型常见问题

1.视觉编码器和 LLM 连接时&#xff0c;使用 BLIP2中 Q-Former那种复杂的 Adaptor 好还是 LLaVA中简单的 MLP 好&#xff0c;说说各自的优缺点&#xff1f; Q-Former&#xff08;BLIP2&#xff09;&#xff1a; 优点&#xff1a;Q-Former 通过查询机制有效融合了视觉和语言特征…...

2025 年大模型排行分析:中美竞争与未来展望

具体排名数据见文章结尾 在人工智能领域&#xff0c;大模型的性能成为衡量机构技术实力的重要标志。以下是根据最新排名的一些主要发现&#xff0c;尤其关注中国模型的发展现状和优势。 全球领先的模型 在本次排名中&#xff0c;美国 OpenAI 的多个版本占据榜首位置。具体而…...

为什么后端路由需要携带 /api 作为前缀?前端如何设置基础路径 /api?

一、为什么后端路由需要携带 /api 作为前缀&#xff1f; 1. 区分 API 端点与其他路由 在 Web 应用程序中&#xff0c;后端不仅需要处理 API 请求&#xff0c;还可能需要处理静态资源&#xff08;如 HTML、CSS、JS 文件&#xff09;或其他服务&#xff08;如 WebSocket&#x…...