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

HTTP请求与前端资源未优化的系统性风险与高性能优化方案

目录

  • 前言
  • 一、未合并静态资源:HTTP请求的隐形杀手
    • 1.1 多文件拆分的代价
    • 1.2 合并策略与工具链实践
  • 二、未启用GZIP压缩:传输流量的浪费
    • 2.1 文本资源的压缩潜力
    • 2.2 服务端配置与压缩算法选择
  • 三、未配置浏览器缓存:重复请求的根源
    • 3.1 缓存失效的性能损耗
    • 3.2 Cache-Control策略分级应用
  • 四、CDN加速:全局性能优化的关键
    • 4.1 静态资源分发的地理优化
    • 4.2 实施CDN的最佳实践
  • 五、系统化提升网站性能的实践指南
    • 5.1 诊断先行:精准定位性能瓶颈
    • 5.2 **优化优先级矩阵:ROI导向的决策模型**
    • 5.3 技术落地全景图:全链路优化方案
    • 5.4 团队协作模式:跨职能敏捷优化
  • 六、新兴技术演进方向
  • 总结

前言

在前端开发中,HTTP请求的优化和资源管理直接影响用户体验与系统性能。本文将探讨多个CSS/JS文件未合并、未启用GZIP压缩、未设置浏览器缓存等常见问题,并结合实际场景提出优化策略,辅以技术实现细节,帮助开发者提升网站加载效率。

🌟 关于我 | 李工👨‍💻
深耕代码世界的工程师 | 用技术解构复杂问题 | 开发+教学双重角色
🚀 为什么访问我的个人知识库?
👉 https://cclee.flowus.cn/
更快的更新 - 抢先获取未公开的技术实战笔记
沉浸式阅读 - 自适应模式/代码片段一键复制
扩展资源库 - 附赠 「编程资源」 + 「各种工具包」
🌌 这里不仅是博客 → 更是我的 编程人生全景图🌐
从算法到架构,从开源贡献到技术哲学,欢迎探索我的立体知识库!

一、未合并静态资源:HTTP请求的隐形杀手

1.1 多文件拆分的代价

当项目中存在多个CSS或JS文件时,每个文件都会触发独立的HTTP请求。根据HTTP/1.x协议,浏览器对同域名的并发连接数有限制(通常为6个),导致资源排队加载,显著延长首屏渲染时间。例如,一个页面包含10个CSS文件和8个JS文件,至少需要18次请求,每次请求包含TCP握手、DNS解析等固定开销,累积耗时可能超过1秒。

1.2 合并策略与工具链实践

解决方案:通过构建工具合并资源,将CSS/JS文件分别压缩为单一文件。例如:

  • Webpack:通过SplitChunksPlugin提取公共库,利用MiniCssExtractPlugin合并CSS。

  • Gulp:使用gulp-concat合并文件,配合gulp-clean-css压缩CSS。

    // Gulp合并CSS示例  
    const gulp = require('gulp');  
    const concat = require('gulp-concat');  
    const cleanCSS = require('gulp-clean-css');  gulp.task('merge-css', () => {  return gulp.src(['src/a.css', 'src/b.css'])  .pipe(concat('bundle.css'))  .pipe(cleanCSS())  .pipe(gulp.dest('dist'));  
    });  
    

    合并后,HTTP请求数量可减少70%以上,同时减少服务器并发压力。

二、未启用GZIP压缩:传输流量的浪费

2.1 文本资源的压缩潜力

HTML、CSS、JS等文本文件通常存在大量冗余字符(如空格、注释),未经压缩直接传输会浪费带宽。例如,未压缩的jQuery 3.6.0文件大小为280KB,启用GZIP后仅需96KB,压缩率达65%。

2.2 服务端配置与压缩算法选择

实施步骤

  1. Nginx配置

    gzip on;  
    gzip_types text/plain application/javascript application/x-javascript text/css;  
    gzip_min_length 1000;  
    
  2. Brotli压缩:Google开发的Brotli算法比GZIP压缩率高15%-25%,但需权衡兼容性(IE11不支持)。

注意事项

  • 避免对已压缩文件(如JPEG、PNG)重复压缩,否则可能增加CPU负载但无收益。

  • 设置合理压缩级别(建议GZIP level=5),平衡压缩率与服务器性能。

三、未配置浏览器缓存:重复请求的根源

3.1 缓存失效的性能损耗

未设置缓存时,用户每次访问页面均需重新下载静态资源。以200KB的JS文件为例,若用户日均访问3次,100万用户每月将消耗额外60GB流量,且加载速度下降50%。

3.2 Cache-Control策略分级应用

根据资源类型制定差异化缓存策略:

资源类型缓存配置示例场景说明
版本化静态资源Cache-Control: max-age=31536000, immutableCDN加速的CSS/JS文件,文件名带哈希值
API接口Cache-Control: no-cache需实时验证有效性,避免脏数据
HTML文档Cache-Control: no-store防止敏感页面被缓存

调试技巧:通过Chrome DevTools的Network面板检查Cache-Control头,确保响应包含预期策略。

四、CDN加速:全局性能优化的关键

4.1 静态资源分发的地理优化

CDN通过将JS/CSS/图片分发至全球边缘节点,使用户就近获取资源。例如,部署在阿里的CDN节点可使欧洲用户访问延迟从300ms降至50ms,提升加载速度。

4.2 实施CDN的最佳实践

  1. 资源上传:通过CI/CD流程自动上传至CDN,如使用GitHub Action调用阿里云OSS API。

  2. 版本控制:采用[name].[hash].ext命名规则(如app.abc123.js),确保更新后立即生效。

  3. HTTP/2支持:CDN通常支持HTTP/2多路复用,减少TCP连接数,进一步提升并发效率。

五、系统化提升网站性能的实践指南

前端性能优化是一项多维度工程,需结合技术方案、团队协作与持续监控形成闭环。以下策略从落地优先级、技术实施路径到团队分工角度,为网站优化提供可执行的框架:

5.1 诊断先行:精准定位性能瓶颈

  • 工具矩阵

    • 使用Lighthouse进行自动化评分,重点关注PerformanceDiagnostics模块

    • 通过WebPageTest分析资源加载瀑布图,识别阻塞渲染的关键资源

    • 部署前端埋点SDK(如SpeedCurve)持续监测真实用户性能数据

  • 核心指标基线: 设定LCP(最大内容绘制)<2.5s、CLS(累计布局偏移)<0.1、FCP(首次内容绘制)<1.8s的优化目标

5.2 优化优先级矩阵:ROI导向的决策模型

优化项技术难度用户体验提升实施成本推荐优先级
合并关键CSS/JS★★☆☆☆★★★★★★★☆☆☆P0
启用Brotli压缩★★★☆☆★★★★☆★★★☆☆P1
CDN预热+HTTP/2升级★★★★☆★★★★☆★★★★☆P1
缓存策略分级实施★★☆☆☆★★★★☆★☆☆☆☆P0
图片懒加载+WebP转换★★★☆☆★★★★★★★★☆☆P0

实施要点

  • 对阻塞渲染的CSS内联(<14KB),其余CSS异步加载

  • 对第三方库采用Subresource Integrity(SRI)校验,确保CDN资源安全

5.3 技术落地全景图:全链路优化方案

前端构建层(Build-Time Optimization)

// Webpack 5配置示例:资源合并与压缩  
module.exports = {  optimization: {  splitChunks: {  chunks: 'all',  maxSize: 200 * 1024, // 拆分超大包  cacheGroups: {  vendor: {  test: /[\\/]node_modules[\\/]/,  name: 'vendors',  chunks: 'all'  }  }  }  },  module: {  rules: [  {  test: /\.js$/,  use: ['terser-webpack-plugin'] // JS压缩  },  {  test: /\.css$/,  use: ['style-loader', 'css-loader', 'postcss-loader']  }  ]  }  
}  

服务端配置(Server-Side Optimization)

# Nginx综合优化配置示例  
location ~ \.(js|css|png|jpg|svg)$ {  expires 30d;  add_header Cache-Control "public, no-transform";  gzip_static on; # 优先返回已压缩的.gz文件  brotli_static on;  
}  gzip on;  
gzip_types text/plain application/javascript application/x-javascript text/css;  
gzip_comp_level 5;  # HTTP/2配置  
listen 443 ssl http2;  
ssl_certificate /path/to/cert.crt;  
ssl_certificate_key /path/to/privkey.key;  

5.4 团队协作模式:跨职能敏捷优化

  • 前端开发

    • 实施代码分割(Code Splitting)与Tree Shaking

    • 使用Lighthouse CI集成到PR审核流程

  • 后端开发

    • 实现EDNS客户端子网(Client Subnet)支持,提升CDN缓存命中率

    • 配置服务器推送(HTTP/2 Server Push)预加载关键资源

  • 运维团队

    • 通过Prometheus+Grafana监控Time to First Byte(TTFB)

    • 使用Apache Bench进行压力测试

六、新兴技术演进方向

  1. HTTP/3优化:利用QUIC协议减少连接建立时间

  2. 边缘计算:在CDN边缘节点执行JS逻辑

  3. AI驱动优化:基于用户行为预测预加载资源

  4. 模块联邦:实现跨应用资源共享加载

总结

性能优化不是一次性任务,而是伴随业务增长的持续过程。通过建立"诊断-实施-监控"的闭环体系,结合自动化工具链和跨职能协作,可将优化效率提升3倍以上。

相关文章:

HTTP请求与前端资源未优化的系统性风险与高性能优化方案

目录 前言一、未合并静态资源&#xff1a;HTTP请求的隐形杀手1.1 多文件拆分的代价1.2 合并策略与工具链实践 二、未启用GZIP压缩&#xff1a;传输流量的浪费2.1 文本资源的压缩潜力2.2 服务端配置与压缩算法选择 三、未配置浏览器缓存&#xff1a;重复请求的根源3.1 缓存失效的…...

黑马点评day04(分布式锁-setnx)

4、分布式锁 4.1 、基本原理和实现方式对比 分布式锁&#xff1a;满足分布式系统或集群模式下多进程可见并且互斥的锁。 分布式锁的核心思想就是让大家都使用同一把锁&#xff0c;只要大家使用的是同一把锁&#xff0c;那么我们就能锁住线程&#xff0c;不让线程并行&#x…...

哈尔滨服务器租用

选择一家正规的本地服务商&#xff0c;能够直接促进您网站今后的发展、确保您企业的信息化进程安全、高效。擦亮您的慧眼&#xff0c;用我的经验告诉您该怎么选择服务商。。。。。。。。综合我们为数据客户服务的经验&#xff0c;选择服务器租用、服务提供商客户所需要关注的主…...

企业级RAG架构设计:从FAISS索引到HyDE优化的全链路拆解,金融/医疗领域RAG落地案例与避坑指南(附架构图)

本文较长&#xff0c;纯干货&#xff0c;建议点赞收藏&#xff0c;以免遗失。更多AI大模型应用开发学习内容&#xff0c;尽在聚客AI学院。 一. RAG技术概述 1.1 什么是RAG&#xff1f; RAG&#xff08;Retrieval-Augmented Generation&#xff0c;检索增强生成&#xff09; 是…...

js获取uniapp获取webview内容高度

js获取uniapp获取webview内容高度 在uni-app中&#xff0c;如果你想要获取webview的内容高度&#xff0c;可以使用uni-app提供的bindload事件来监听webview的加载&#xff0c;然后通过调用webview的invokeMethod方法来获取内容的高度。 以下是一个示例代码&#xff1a; <te…...

AI量化解析:从暴跌5%到飙涨3%—非线性动力学模型重构黄金极端波动预测框架

AI分析&#xff1a;假期效应褪去&#xff0c;金价回调背后的市场逻辑 五一假期期间&#xff0c;全球贵金属市场经历显著波动。5月1日&#xff0c;现货黄金单日跌幅达5.06%&#xff0c;价格从历史高位回落至3200美元/盎司附近&#xff0c;国内金饰价格同步回调&#xff0c;主流…...

Python之pip图形化(GUI界面)辅助管理工具

Python之pip图形化&#xff08;GUI界面&#xff09;辅助管理工具 pip 是 Python 的包管理工具&#xff0c;用于安装、管理、更新和卸载 Python 包&#xff08;模块&#xff09;。用于第三方库的安装和管理过程&#xff0c;是 Python 开发中不可或缺的工具。 包的安装、更新、…...

数字传播生态中开源链动模式与智能技术协同驱动的品牌认知重构研究——基于“开源链动2+1模式+AI智能名片+S2B2C商城小程序”的场景化传播实践

摘要&#xff1a;在数字传播碎片化与用户注意力稀缺的双重挑战下&#xff0c;传统品牌认知构建模式面临效率衰减与情感黏性缺失的困境。本文以“开源链动21模式AI智能名片S2B2C商城小程序”的协同创新为切入点&#xff0c;构建“技术赋能-场景重构-认知强化”的分析框架。通过对…...

小芯片大战略:Chiplet技术如何重构全球半导体竞争格局?

在科技飞速发展的今天&#xff0c;半导体行业作为信息技术的核心领域之一&#xff0c;其发展速度和创新水平对全球经济的发展具有举足轻重的影响。然而&#xff0c;随着芯片制造工艺的不断进步&#xff0c;传统的单片集成方式逐渐遇到了技术瓶颈&#xff0c;如摩尔定律逐渐逼近…...

链表的面试题3找出中间节点

来来来&#xff0c;接着继续我们的第三道题 。 解法 暴力求解 快慢指针 https://leetcode.cn/problems/middle-of-the-linked-list/submissions/ 这道题的话&#xff0c;思路是非常明确的&#xff0c;就是让你找出我们这个所谓的中间节点并且输出。 那这道题我们就需要注意…...

Java泛型深度解析与电商场景应用

学海无涯&#xff0c;志当存远。燃心砺志&#xff0c;奋进不辍。 愿诸君得此鸡汤&#xff0c;如沐春风&#xff0c;事业有成。 若觉此言甚善&#xff0c;烦请赐赞一枚&#xff0c;共励学途&#xff0c;同铸辉煌&#xff01; 泛型的工作原理可能包括类型擦除、参数化类型、类型边…...

C语言 指针(7)

目录 1.函数指针变量 2.函数指针数组 3.转移表 1.函数指针变量 1.1函数指针变量的创建 什么是函数指针变量呢&#xff1f; 根据前面学习整型指针&#xff0c;数组指针的时候&#xff0c;我们的类比关系&#xff0c;我们不难得出结论&#xff1a; 函数指针变量应该是用来…...

go 编译报错:build constraints exclude all Go files

报错信息&#xff1a; package command-line-arguments imports github.com/amikos-tech/chroma-go imports github.com/amikos-tech/chroma-go/pkg/embeddings/default_ef imports github.com/amikos-tech/chroma-go/pkg/tokenizers/libtokenizers: …...

Android Service 从 1.0 到 16 的演进史

一、Android 1.0&#xff08;API 1&#xff09; - 服务的诞生 核心特性&#xff1a; 基础服务组件&#xff1a;作为四大组件之一&#xff0c;Service 用于在后台执行长时间运行的任务&#xff0c;不提供 UI 界面。 启动方式&#xff1a;通过 startService() 启动独立运行的服…...

如何保障服务器租用中的数据安全?

网络科技和互联网的飞速发展&#xff0c;让用户越来越依赖与网络业务&#xff0c;各个行业开展了不同的线上服务&#xff0c;租用服务器已经成为必不可少的组成部分&#xff0c;能够为企业带来便捷&#xff0c;但是数据安全也是不可忽视的&#xff0c;为了能够保护服务器中数据…...

python校园二手交易管理系统-闲置物品交易系统

目录 技术栈介绍具体实现截图系统设计研究方法&#xff1a;设计步骤设计流程核心代码部分展示研究方法详细视频演示试验方案论文大纲源码获取/详细视频演示 技术栈介绍 Django-SpringBoot-php-Node.js-flask 本课题的研究方法和研究步骤基本合理&#xff0c;难度适中&#xf…...

消除AttributeError: module ‘ttsfrd‘ has no attribute ‘TtsFrontendEngine‘报错输出的记录

#工作记录 尝试消除 消除“模块ttsfrd没有属性ttsfrontendengine”的错误的记录 报错摘录&#xff1a; Traceback (most recent call last): File "F:\PythonProjects\CosyVoice\webui.py", line 188, in <module> cosyvoice CosyVoice(args.model_di…...

MD2card + Deepseek 王炸组合 一键制作小红书知识卡片

本文目录 MD2Card介绍使用示例deepseek 提示词输出结果MD2Card 制作小红书卡片 MD2Card介绍 MD2Card 是一个免费的 Markdown 转知识卡片工具&#xff0c;支持一键生成小红书风格海报、社交媒体文案排版&#xff0c;让创作者轻松制作精美的图文内容。支持多种主题风格、长文自动…...

Relay算子注册(在pytorch.py端调用)

1. Relay算子注册 (C层) (a) 算子属性注册 路径: src/relay/op/nn/nn.cc RELAY_REGISTER_OP("hardswish").set_num_inputs(1).add_argument("data", "Tensor", "Input tensor.").set_support_level(3).add_type_rel("Identity…...

基于RT-Thread的STM32F4开发第二讲第一篇——ADC

文章目录 前言一、RT-Thread工程创建二、ADC工程创建三、ADC功能实现1.ADC.c2.ADC.h3.mian.c 四、效果展示和工程分享总结 前言 ADC是什么不多讲了&#xff0c;前面裸机操作部分有很多讲述。我要说的是RT-Thread对STM32的ADC外设的适配极其不好&#xff0c;特别是STM32G4系类&…...

py实现win自动化自动登陆qq

系列文章目录 py实现win自动化自动登陆qq 文章目录 系列文章目录前言一、上代码&#xff1f;总结 前言 之前都是网页自动化感觉太容易了&#xff0c;就来尝尝win自动化&#xff0c;就先写了一个qq登陆的&#xff0c;这个是拿到className 然后进行点击等。 一、上代码&#xf…...

Axure : 列表分页、 列表翻页

文章目录 引言I 列表分页操作说明II 列表翻页操作说明引言 列表分页实现思路:局部变量、 中继器设置每页项目数 I 列表分页 操作说明 在列表元件底部添加一个分页下拉控件,分别为10,20,30,40,50; 将列表转换为动态面板,将设置面板大小勾选取消 给分页大小下拉控件添加…...

大学之大:隆德大学2025.5.6

隆德大学&#xff1a;北欧学术明珠的八百年传承与创新 一.前身历史&#xff1a;从中世纪神学院到现代综合大学的蜕变 隆德大学的历史可追溯至1425年&#xff0c;由丹麦国王埃里克七世在瑞典南部城市隆德创立的“神学与教会法研究院”。这所中世纪学府最初以培养天主教神职人员…...

每日算法-250506

每日算法学习记录 - 250506 今天记录了三道算法题的解题过程和思路&#xff0c;分享给大家。 3192. 使二进制数组全部等于 1 的最少操作次数 II 题目 思路 贪心 解题过程 我们从左到右遍历数组。使用一个变量 ret 来记录已经执行的操作次数。 对于当前元素 nums[i]&#x…...

【免费试用】LattePanda Mu x86 计算模块套件,专为嵌入式开发、边缘计算与 AI 模型部署设计

本次活动为载板设计挑战&#xff0c;旨在激发创意与技术实践能力&#xff0c;鼓励电子工程师、创客、学生及开发者围绕指定LattePanda Mu进行功能丰富、应用多样的载板开发设计。参赛用户将有机会展示硬件设计能力&#xff0c;并通过作品解决实际问题或构建创新项目。本次挑战活…...

用于备份的git版本管理指令

一、先下载一个git服务器软件并安装&#xff0c;创建一个git服务器进行备份的版本管理。 下列指令用于git常用备份&#xff1a; 1、强制覆盖远程仓库&#xff1a; git push --force origin master 2、重新指向新仓库&#xff1a; git remote set-url origin http://192.168.1.2…...

STM32H743单片机实现ADC+DMA多通道检测

在stm32cubeMX上配置ADCDMA实现多通道检测功能 DMA配置 生成代码&#xff0c;HAL_ADC_Start_DMA开始DMA读取ADC值&#xff0c;HAL_ADC_Stop_DMA关闭DMA读取 void Start_ADC2_DMA(void) {/* 初始化后校准ADC */HAL_ADCEx_Calibration_Start(&hadc2, ADC_CALIB_OFFSET, ADC_…...

(提升)媒体投稿技能

1\前期策划与准备 精准定位目标受众&#xff0c;分析内容偏好与活跃媒体基于目标受众&#xff0c;确定发稿核心主题与内容方向 2\内容创作与素材 撰写稿件注重标题吸引力&#xff0c;确保内容逻辑清晰价值突出。素材整合准备高质量的配图、视频 3\内部审核与优化 对稿件内…...

2025年提交App到Appstore从审核被拒到通过的经历

今年3月份提交一个App到Appstore&#xff0c;感觉比以前要严格了很多&#xff0c;被拒了多次才通过。 如果周末提交审核会非常非常&#xff0c;所以最好选择周一之周四的中午提交。 第一次提交被拒&#xff0c;原因为 Guideline 2.1 - Performance - App Completeness Guidel…...

63.微服务保姆教程 (六) SkyWalking--分布式链路追踪系统/分布式的应用性能管理工具

SkyWalking—分布式链路追踪系统/分布式的应用性能管理工具(APM) 一、为什么要用SkyWalking 对于一个有很多个微服务组成的微服务架构系统,通常会遇到一些问题,比如: 如何串联整个调用链路,快速定位问题如何缕清各个微服务之间的依赖关系如何进行各个微服务接口的性能分…...

vue3 computed方法传参数

我们对computed的基础用法不陌生&#xff0c;比如前端项目中经常会遇到数据处理的情况&#xff0c;我们就会选择computed方法来实现。但大家在碰到某些特殊场景&#xff0c;比如在template模板中for循环遍历时想给自己的计算属性传参&#xff0c;这个该怎么实现呢&#xff0c;很…...

Linux中为某个进程临时指定tmp目录

起因&#xff1a; 在linux下编译k8s&#xff0c;由于编译的中间文件太多而系统的/tmp分区设置太小&#xff0c;导致编译失败&#xff0c;但自己不想或不能更改/tmp分区大小&#xff0c;所以只能通过其他方式解决。 现象&#xff1a; tmp分区大小&#xff1a; 解决方法&#x…...

Informer源码解析4——完整注意力机制解读

完整注意力机制 源码 class FullAttention(nn.Module):def __init__(self, mask_flagTrue, factor5, scaleNone, attention_dropout0.1, output_attentionFalse):"""实现完整的注意力机制&#xff0c;支持因果掩码和注意力权重输出。Args:mask_flag (bool): 是…...

第一节:Web3开发概述

一、什么是Web3&#xff1f; 如果把互联网比作一个「大超市」&#xff1a; Web1&#xff08;1990年代&#xff09;&#xff1a;你只能看货架上的商品&#xff08;比如新浪、搜狐这种只读网站&#xff09;。Web2&#xff08;现在&#xff09;&#xff1a;你不仅能看&#xff0…...

【愚公系列】《Manus极简入门》022-艺术创作顾问:“艺术灵感使者”

&#x1f31f;【技术大咖愚公搬代码&#xff1a;全栈专家的成长之路&#xff0c;你关注的宝藏博主在这里&#xff01;】&#x1f31f; &#x1f4e3;开发者圈持续输出高质量干货的"愚公精神"践行者——全网百万开发者都在追更的顶级技术博主&#xff01; &#x1f…...

k8s node 内存碎片化如何优化?

在 Kubernetes 集群中&#xff0c;内存碎片化&#xff08;Memory Fragmentation&#xff09;会导致系统无法分配连续的内存块&#xff0c;即使总内存充足&#xff0c;也可能触发 OOM&#xff08;Out of Memory&#xff09;或影响性能。以下是针对 k8s Node 内存碎片化的优化策略…...

当K8S容器没有bash时7种高阶排查手段

遇到容器没有bash甚至没有sh的情况&#xff0c;就像被困在没有门窗的房间。但真正的K8S运维高手&#xff0c;即使面对这种情况也能游刃有余。以下是我们在生产环境锤炼出的7大实战技巧&#xff1a; 一、基础三板斧&#xff08;新手必学&#xff09; 1. 日志捕获术——穿透重启…...

linux -c程序开发

目的是在linux中创建可执行的c语言程序的步骤 和gcc,make和git的简单运用 建立可执行程序的步骤: -1:预处理: --:头文件展开;--去掉注释;--宏替换;--条件编译 -2:编译 --:将预处理之后的c语言替换为汇编语言带阿米 --:语法分析,语义分析,代码生成 --:检查语法正确性并且优…...

LLM损失函数面试会问到的

介绍一下KL散度 KL&#xff08;Kullback-Leibler散度衡量了两个概率分布之间的差异。其公式为&#xff1a; D K L ( P / / Q ) − ∑ x ∈ X P ( x ) log ⁡ 1 P ( x ) ∑ x ∈ X P ( x ) log ⁡ 1 Q ( x ) D_{KL}(P//Q)-\sum_{x\in X}P(x)\log\frac{1}{P(x)}\sum_{x\in X}…...

【redis】redis 手动切换主从

场景一&#xff1a; 测试需要&#xff0c;需要手动切换主从 在redis节点&#xff1a; $ redis-cli -h xx.xx.xx.xx -p XX -a XX shutdown 不要直接关闭redis进程&#xff0c;使用 shutdown &#xff0c;能在进程关闭前持久化内存中的数据 待主从切换完毕后&#xff1…...

Webug4.0靶场通关笔记17- 第21关文件上传(htaccess)

目录 第21关 文件上传(htaccess) 1.打开靶场 2.源码分析 &#xff08;1&#xff09;右键源码 &#xff08;2&#xff09;源码分析 3.渗透实战 &#xff08;1&#xff09;配置环境 &#xff08;2&#xff09;构造脚本 &#xff08;3&#xff09;访问脚本 本文通过《webu…...

ASP.NET Core 中间件

文章目录 前言一、中间件的本质定义&#xff1a;类比&#xff1a; 二、作用场景&#xff1a;三、中间件的执行顺序四、中间件的配置方式1&#xff09;委托形式&#xff08;最常见&#xff09;&#xff1a;2&#xff09;类形式&#xff1a; 五、核心方法六、注意事项七、中间件 …...

Linux:进程间通信---命名管道共享内存

文章目录 1.命名管道1.1 命名管道是什么1.2 如何创建命名管道1.3 如何通过命名管道实现进程间通信 2. 共享内存2.1 共享内存的原理2.2 共享内存的系统接口与接口的调用2.3 共享内存的挂接2.4 共享内存的特性 序&#xff1a;在上一章对用来进行进程间通信的匿名管道进行了详细的…...

一个基于Asp.Net Core + Angular + Bootstrap开源CMS系统

从零学习构建一个完整的系统 推荐一个功能强大、易于扩展、安全可靠的开源内容管理系统&#xff0c;适用于各种类型和规模的网站。 项目简介 MixCoreCMS是一个基于.NET Core框架的开源内容管理系统&#xff08;CMS&#xff09;&#xff0c;提供了丰富的的基础功能和插件&…...

ECMAScript 6(ES6):JavaScript 现代化的革命性升级

1. 版本背景与发布 发布时间&#xff1a;2015 年 6 月&#xff0c;由 ECMA International 正式发布&#xff0c;标准编号为 ECMA-262 Edition 6&#xff08;后称 ES2015&#xff09;。历史意义&#xff1a; JavaScript 诞生 20 年后的革命性升级&#xff0c;首次引入类&#…...

基于WebUI的深度学习模型部署与应用实践

引言 随着深度学习技术的快速发展,如何将训练好的模型快速部署并提供友好的用户交互界面成为许多AI项目落地的关键。WebUI(Web User Interface)作为一种轻量级、跨平台的解决方案,正被广泛应用于各类AI模型的部署场景。本文将详细介绍基于Python生态构建WebUI的技术方案,包…...

MySQL表的增删查改

目录 一、MySQL表的增删查改二、Create单行数据全列插入多行数据 指定列插入插入否则更新替换数据 三、RetrieveSELECT 列WHERE 条件NULL的查询结果排序筛选分页结果 四、Update将孙悟空同学的数学成绩修改为80分将曹孟德同学的数学成绩修改为60分&#xff0c;语文成绩修改为7…...

Android第六次面试总结之Java设计模式(二)

一、适配器模式&#xff08;Adapter Pattern&#xff09; 1. ListView vs RecyclerView 的 Adapter 核心区别&#xff1f;为什么 RecyclerView 需要 ViewHolder&#xff1f; 解答&#xff1a; 核心区别&#xff1a; 特性ListView.Adapter&#xff08;如 ArrayAdapter&#xf…...

QuecPython+腾讯云:快速连接腾讯云l0T平台

该模块提供腾讯 IoT 平台物联网套件客户端功能,目前的产品节点类型仅支持“设备”&#xff0c;设备认证方式支持“一机一密”和“动态注册认证”。 BC25PA系列不支持该功能。 初始化腾讯 IoT 平台 TXyun TXyun(productID, devicename, devicePsk, ProductSecret)配置腾讯 IoT…...

说下RabbitMQ的整体架构

RabbitMQ 是一个基于 AMQP&#xff08;Advanced Message Queuing Protocol&#xff09; 协议的开源消息中间件&#xff0c;RabbitMQ的整体架构围绕消息的生产、路由、存储和消费设计&#xff0c;旨在实现高效、可靠的消息传递&#xff0c;它由多个核心组件协同工作。 核心组件 …...