网站开发的发展/策划
Web架构
Web架构是指构建和管理Web应用程序的方法和模式。随着技术的发展,Web架构也在不断演进。当前,最常用的Web架构包括以下几种:
- 单页面应用(SPA):
- 特点:所有用户界面逻辑和数据处理都包含在一个HTML页面中,通过JavaScript动态加载内容。
- 优势:良好的用户体验,快速的内容加载,可缓存静态文件。
- 劣势:初始加载时间较长,对网络条件要求较高,搜索引擎优化(SEO)挑战。
- 前后端分离:
- 特点:将Web应用程序的前端(用户界面)和后端(服务器逻辑)分离,通常通过API进行通信。
- 优势:前后端开发可以并行进行,提高开发效率;易于维护和扩展。
- 劣势:增加了API设计和维护的复杂性。
- 微服务架构:
- 特点:将大型应用程序分解成多个小型、独立的服务,每个服务运行在自己的进程中,通过API进行通信。
- 优势:可独立部署,易于扩展,能够使用不同的技术栈。
- 劣势:增加了系统复杂性,需要更多的协调和管理。
- 服务器端渲染(SSR):
- 特点:服务器端执行Web应用程序的逻辑和渲染,然后将完整的HTML页面发送给客户端。
- 优势:良好的SEO性能,快速的页面加载,尤其是在首屏内容加载时。
- 劣势:服务器负载较大,需要额外的服务器资源。
- 全栈开发:
- 特点:开发者负责整个Web应用程序的端到端开发,包括前端和后端。
- 优势:开发效率高,对整个系统的理解更深入。
- 劣势:需要开发者具备全面的技术栈知识。
- 无服务器架构(Serverless):
- 特点:应用程序不需要管理服务器或操作系统,所有计算和存储需求都由云服务提供商管理。
- 优势:易于扩展,无需担心服务器管理,成本效益高。
- 劣势:对开发者而言,可能需要适应新的开发模式和思维方式。
这些架构各有优势和劣势,适用于不同的项目需求和场景。选择哪种架构取决于项目的具体要求、团队的技能、以及期望的性能和成本。随着技术的进步,新的Web架构模式也在不断出现和被采纳。
一、前后端分离站
前后端分离是Web开发中的一种常见模式,它将Web应用程序分为两个独立的层:前端(用户界面)和后端(服务器逻辑)。这种分离模式允许前端和后端开发可以并行进行,提高了开发效率和维护性。以下是前后端分离应用的详细介绍:
前端开发
- 技术栈:
- HTML:用于构建网页的结构。
- CSS:用于网页的布局和样式。
- JavaScript:用于实现网页的交互和动态效果。
- 框架和库:如React、Vue.js、Angular等,用于简化开发过程。
- 工作流程:
- 前端开发人员负责创建和维护HTML页面、CSS样式和JavaScript脚本。
- 他们通常使用版本控制工具(如Git)来管理代码,并与后端开发人员协作。
后端开发
- 技术栈:
- 服务器端语言:如Node.js、Python(Django、Flask)、Java(Spring)、Ruby(Ruby on Rails)等。
- 数据库:如MySQL、PostgreSQL、MongoDB等。
- 框架和库:如Express.js、Django、Flask、Spring Boot等。
- 工作流程:
- 后端开发人员负责实现服务器逻辑、数据库交互和API设计。
- 他们使用版本控制工具来管理代码,并与前端开发人员协作。
通信方式
前后端分离应用通常通过API(Application Programming Interface)进行通信。前端向后端发送HTTP请求,后端处理请求并返回数据或响应。这种通信可以是同步的(如GET和POST请求),也可以是异步的(如WebSocket)。
优点
- 开发效率:前端和后端开发可以并行进行,提高开发速度。
- 维护性:由于前端和后端分离,它们可以独立部署和维护。
- 可扩展性:前后端可以独立扩展,例如,可以增加更多的前端页面或后端服务。
- 技术栈选择:前后端可以使用不同的技术栈,根据各自的需求和优势来选择。
缺点
- API设计:需要设计良好的API,以保证前后端之间的通信顺畅。
- 团队协作:需要前后端开发人员良好的沟通和协作,以确保整体项目的顺利进行。
实际应用
前后端分离模式广泛应用于各种Web应用,如电子商务网站、社交网络、在线办公工具等。它允许开发者根据项目的需求选择合适的技术栈,并且可以更容易地扩展和维护。
二、Docker容器站
微服务架构是一种将应用程序作为一组小型服务的方式进行构建,每个服务运行在自己的进程中,并且通过轻量级的通信机制(通常是HTTP RESTful API)进行协调和集成。每个服务都是围绕业务功能构建的,并且可以独立部署。容器化是实现微服务架构的一种流行方式,因为它提供了环境一致性、可移植性和易于部署等优点。
微服务架构的特点
- 服务自治:每个微服务都负责一个特定的功能,可以独立开发、测试、部署和扩展。
- 语言和框架独立:微服务可以使用不同的编程语言和框架,只要它们可以相互通信。
- 轻量级通信:微服务之间通过API进行通信,通常使用HTTP/REST或消息队列。
- 服务发现:每个服务都需要知道如何找到其他服务,服务发现机制可以帮助它们找到其他服务的地址。
- 容错和负载均衡:微服务架构需要考虑如何处理服务的失败和负载,因此需要实现容错和负载均衡机制。
容器化
容器化是将应用程序及其依赖打包在一起,形成一个可移植的容器镜像,可以在任何支持该镜像的环境中运行。容器化技术,如Docker,允许开发人员创建一个容器镜像,其中包含了应用程序、依赖、运行时环境等,确保应用程序在任何地方都能以相同的方式运行。
微服务容器网站的特点
- 可扩展性:通过容器化,可以轻松地水平扩展服务,以应对增加的负载。
- 环境一致性:容器化确保了开发、测试和生产环境的一致性,减少了环境差异带来的问题。
- 快速部署:容器镜像可以快速部署到生产环境中,并且可以自动化部署流程。
- 服务自治:每个微服务都是独立的,可以独立部署和扩展,不需要重新部署整个应用程序。
- 容错和负载均衡:容器化平台(如Kubernetes)提供了容错和负载均衡机制,确保服务的可用性和性能。
实际应用
微服务容器网站通常用于大型、复杂和需要快速迭代的项目。它们允许开发团队独立工作,同时保持整个系统的协调和一致性。这种架构模式非常适合需要频繁更新和扩展的Web应用程序,如电子商务网站、社交网络和在线协作工具。
三、OSS存储
网站对象存储服务(Object Storage Service,简称OSS)是一种提供海量、安全、低成本、高可靠的对象存储服务,适用于存放大规模非结构化数据。网站OSS存储通常用于存储静态资源文件,如图片、视频、音频等,以及备份数据、归档数据和日志数据等。
阿里云、腾讯云、华为云等国内主流云服务提供商都提供了自己的OSS存储服务。以下是一些常见的OSS存储服务特点:
- 海量存储:OSS提供PB级别的存储空间,可以满足大规模数据存储的需求。
- 高可靠性:OSS采用冗余存储,数据会自动备份到不同的存储设备,确保数据的安全性和可靠性。
- 高性能:OSS提供高吞吐量的读写能力,可以满足高性能数据访问的需求。
- 安全性:OSS支持多种安全特性,如访问控制列表(ACL)、数据加密、防盗链等,确保数据的安全性。
- 灵活性:OSS支持多种编程语言和开发工具,可以方便地集成到各种应用程序中。
- 低成本:OSS采用按量付费的模式,用户只需为实际使用的存储空间和数据流量付费,无需预付费。
网站OSS存储的使用场景: - 静态资源存储:将网站的静态资源文件(如图片、视频、音频等)存储在OSS上,可以提高网站的性能和可扩展性。
- 备份和归档:将重要数据和日志文件存储在OSS上,可以实现数据的长期保存和备份。
- 内容分发:利用OSS的高性能和全球节点,可以实现内容在全球范围内的快速分发。
- 日志分析:将网站日志数据存储在OSS上,可以方便地进行日志分析和数据挖掘。
- 开发和测试:开发和测试团队可以将开发环境中的数据和文件存储在OSS上,实现环境的一致性和共享。
四、负载均衡
网站负载均衡是一种网络技术,用于在多个服务器之间分配网络流量,以提高系统的可用性、可靠性和性能。当网站或应用程序的访问量增加时,负载均衡器可以帮助分散流量,确保每个服务器都能有效地处理请求,从而避免单一服务器过载。
负载均衡器的作用:
- 提高可用性:如果一个服务器出现故障,负载均衡器可以将流量转移到其他健康的服务器上,确保服务不中断。
- 增加可靠性:通过在多个服务器之间分配流量,即使某些服务器出现问题,也不会影响整个系统的运行。
- 提高性能:负载均衡器可以根据服务器的当前负载情况,智能地将请求分配到最合适的服务器,从而提高响应速度和吞吐量。
- 可扩展性:随着访问量的增加,可以轻松地添加更多服务器到负载均衡器中,以满足不断增长的需求。
负载均衡器的类型:
- 硬件负载均衡器:使用专门的硬件设备来处理流量分发。这些设备通常具有高性能和高级功能。
- 软件负载均衡器:运行在服务器或虚拟机上的软件,可以实现与硬件负载均衡器类似的功能。
- 云服务负载均衡器:云服务提供商(如阿里云、腾讯云、AWS等)提供的负载均衡服务,通常易于设置和管理。
负载均衡器的实现方式:
- 轮询(Round Robin):按照预设的顺序,将请求依次发送到每个服务器。
- 最少连接(Least Connections):将请求发送到当前连接数最少的服务器。
- IP哈希(IP Hash):根据客户端的IP地址来决定将请求发送到哪个服务器。
- 基于服务器性能的负载均衡:根据服务器的性能指标(如CPU使用率、内存使用率等)来决定请求的分配。
- 地理位置(GeoIP):根据客户端的地理位置,将请求发送到离客户端最近的服务器。
负载均衡器的配置:
- 创建负载均衡器:在云服务提供商的管理控制台中创建负载均衡器实例。
- 添加后端服务器:将需要负载均衡的服务器添加到负载均衡器中。
- 设置监听器:配置监听器的规则,如端口、协议、路径等。
- 配置健康检查:设置健康检查规则,以监控后端服务器的健康状况。
- 启用会话保持:如果需要保持用户的会话状态,可以启用会话保持功能。
- 配置安全策略:设置SSL/TLS加密、访问控制等安全策略。
通过合理配置负载均衡器,可以确保网站或应用程序在各种流量条件下都能提供稳定的服务。随着技术的发展,负载均衡器的功能和性能也在不断优化和提升。
五、CDN加速
CDN(Content Delivery Network,内容分发网络)是一种分布式网络架构,用于加速网站内容的分发和访问。CDN通过在全球各地部署服务器节点,将网站的内容缓存到离用户最近的节点上,从而缩短用户访问网站内容的距离,减少数据传输时间,提高网站的加载速度和用户体验。
CDN的工作原理:
- 用户请求:用户通过浏览器访问网站时,会发送一个请求到网站的域名。
- DNS解析:用户的DNS服务器会将域名解析为对应的IP地址,通常是网站的CDN节点地址。
- 请求分发:用户的请求首先到达CDN节点,CDN节点会检查请求的资源是否已在本地缓存。
- 缓存命中:如果请求的资源已在CDN节点缓存,CDN节点直接响应用户请求,返回缓存内容。
- 缓存未命中:如果请求的资源未在CDN节点缓存,CDN节点会向源站(网站服务器)发送请求,获取资源。
- 缓存内容:CDN节点获取资源后,将其缓存起来,以便后续的请求可以直接从CDN节点获取。
- 返回内容:CDN节点将获取到的资源返回给用户,完成请求处理。
CDN的优势:
- 加速访问:通过在用户附近的CDN节点提供内容,减少数据传输距离,提高访问速度。
- 提高可靠性:CDN具有高可用性和高可靠性,即使源站出现故障,CDN节点也能提供内容。
- 节省带宽:CDN缓存的内容可以直接从CDN节点返回,减少源站的带宽消耗。
- 降低成本:通过使用CDN,可以减少源站的硬件和带宽成本。
- 全球覆盖:CDN在全球部署节点,可以覆盖更多用户,提供更好的全球访问体验。
CDN的实现方式:
- 自建CDN:企业可以自己搭建CDN网络,管理自己的节点和服务。
- 使用第三方CDN服务:企业可以选择使用阿里云CDN、腾讯云CDN、AWS CloudFront等第三方CDN服务。
CDN的配置:
- 选择CDN服务提供商:根据企业需求和预算选择合适的CDN服务提供商。
- 注册账号并创建CDN实例:在CDN服务提供商的管理控制台中注册账号,并创建CDN实例。
- 配置源站:将网站的域名和源站地址关联到CDN实例。
- 设置缓存策略:配置CDN节点的缓存策略,包括缓存时间、缓存规则等。
- 配置DNS解析:将网站的域名解析到CDN节点的IP地址。
通过配置CDN,可以显著提高网站的访问速度和用户体验,是现代网站建设中不可或缺的一部分。随着技术的发展,CDN的功能和性能也在不断优化和提升。
六、反向代理
HTTP反向代理是一种网络服务,它接收客户端的请求,然后将这些请求转发到内部网络上的服务器,并将从服务器接收到的响应转发回客户端。反向代理隐藏了内部网络的细节,使得客户端无法直接访问内部网络的服务器。
反向代理的作用:
- 安全:反向代理可以阻止外部用户直接访问内部服务器,从而提高安全性。
- 性能:通过缓存静态内容,反向代理可以减少内部服务器的负载,提高响应速度。
- 负载均衡:反向代理可以自动将请求分配到多个服务器上,实现负载均衡。
- 控制访问:反向代理可以控制对内部服务器的访问,例如,通过IP地址过滤、SSL终止等。
- 内容分发:反向代理可以将内容分发到全球各地,提高全球用户的访问速度。
常见的反向代理软件:
- Nginx:一个开源的HTTP和反向代理服务器,广泛用于负载均衡和反向代理。
- Apache HTTP Server:一个流行的开源HTTP服务器,也支持反向代理功能。
- HAProxy:一个高性能的负载均衡器,可以作为反向代理使用。
- IIS:微软提供的Web服务器,支持反向代理功能。
反向代理的配置:
- 创建代理规则:在反向代理软件的配置文件中创建代理规则,指定请求转发到内部服务器的路径。
- 设置缓存策略:配置反向代理的缓存策略,包括缓存时间、缓存内容等。
- 配置负载均衡:如果需要实现负载均衡,可以配置反向代理的负载均衡策略,如轮询、最少连接等。
- 安全设置:设置反向代理的安全策略,例如,通过SSL终止来保护通信安全。
- 测试和调整:在生产环境中部署反向代理之前,进行充分的测试和调整,以确保其正常工作。
通过配置反向代理,可以提高内部服务器的性能和安全性,并改善用户体验。随着技术的发展,反向代理的功能和性能也在不断优化和提升。
七、WAF防护
WAF(Web Application Firewall,Web应用防火墙)是一种网络安全系统,旨在保护Web应用程序免受攻击,如SQL注入、跨站脚本(XSS)、远程文件包含(RFI)、本地文件包含(LFI)、会话劫持、CSRF(跨站请求伪造)等。它工作在Web服务器的前端,监视、分析和过滤传入和传出的Web通信。
比如安全狗的Web应用安全产品包括新一代混合式WAF产品和防篡改系统,旨在为网站安全提供全面保障。在安全大数据领域,安全狗基于海量攻防数据,结合AI学习能力,构建多领域、多维度的安全态势感知平台,帮助用户有效预测风险、精准感知威胁、提升响应效率。此外,安全狗还提供包括等保2.0、渗透测试、红蓝对抗等全方位的高级安全服务。
相关文章:

从零开始学习网络安全渗透测试之基础入门篇——(二)Web架构前后端分离站Docker容器站OSS存储负载均衡CDN加速反向代理WAF防护
Web架构 Web架构是指构建和管理Web应用程序的方法和模式。随着技术的发展,Web架构也在不断演进。当前,最常用的Web架构包括以下几种: 单页面应用(SPA): 特点:所有用户界面逻辑和数据处理都包含…...

2679. 矩阵中的和
两种方法: 第一种:先对二维列表的每一列进行排序,然后对每一列的数据进行逐个比较,找出最大值。 class Solution:def matrixSum(self, nums: list[list[int]]) -> int:result0mlen(nums)nlen(nums[0])for i in range(m):nums…...

Unity Playables:下一代动画与音频序列
Unity的Playables API是一种灵活的系统,用于创建和控制动画、音频以及其他形式的连续媒体序列。它为开发者提供了一种全新的方法来处理游戏中的时间序列,包括动画、音频、特效等。本文将探讨Playables的基本概念、如何使用Playables API实现动画…...

matlab仿真 模拟调制(下)
(内容源自详解MATLAB/SIMULINK 通信系统建模与仿真 刘学勇编著第五章内容,有兴趣的读者请阅读原书) clear all ts0.001; t0:ts:10-ts; fs1/ts; dffs/length(t); msgrandi([-3 3],100,1); msg1msg*ones(1,fs/10); msg2reshape(ms…...

RabbitMQ是什么?
RabbitMQ是一个开源的消息代理软件(Message Broker),它实现了高级消息队列协议(AMQP,Advanced Message Queuing Protocol),并支持多种消息传递协议。它最初由英国的Rabbit Technologies开发&…...

追问试面试系列:分布式id
hi 大家好,欢迎来到追问试面试系列:分布式id 面试中可能面试官不会直接问你分布式id问题,基本上都是因为你在某些面试题回答中提到了,所以就开始追问分布式id相关问题。 先看面试题 ● 面试官:什么是分布式id? ● 面试官:举个例子说说 ● 面试官:什么叫分库分表? ●…...

护网紧急情况应对指南:Linux 应急响应手册
继上一篇:护网紧急情况应对指南:Windows版v1.2全新升级版 之后 收到小伙伴后台要Linux应急手册,今天给大家安排上。 《Linux应急手册》是一本为Linux系统管理员和运维工程师量身打造的实用指南,旨在帮助他们快速应对各种突发状况…...

WEB攻防-通用漏洞-SQL 读写注入-MYSQLMSSQLPostgreSQL
什么是高权限注入 高权限注入指的是攻击者通过SQL注入漏洞,利用具有高级权限的数据库账户(如MYSQL的root用户、MSSQL的sa用户、PostgreSQL的dba用户)执行恶意SQL语句。这些高级权限账户能够访问和修改数据库中的所有数据,甚至执行…...

【前端学习笔记】CSS基础一
一、什么是CSS 1.CSS 介绍 CSS(Cascading Style Sheets,层叠样式表)是一种用来控制网页布局和设计外观的样式语言。它使得开发者可以分离网页的内容(HTML)和表现形式(样式),提高了…...

Github遇到的问题解决方法总结(持续更新...)
1.github每次push都需要输入用户名和token的解决方法 push前,执行下面命令 : git config --global credential.helper store 之后再输入一次用户名和token之后,就不用再输入了。 2.git push时遇到“fatal: unable to access https://githu…...

数字信封+数字签名工具类测试样例(Java实现)
加解密过程 加密: 生成加密方SM2密钥对用于签名使用生成的SM2私钥生成数字签名生成SM4对称密钥对明文进行对称加密使用与解密方提前约定好的SM2公钥对第三步中的SM4对称密钥进行非对称加密把【加密方SM2公钥】、【数字签名】、【SM4对称加密后的密文】和【SM2非对…...

The Schematic workflow failed. See above.
在使用 ng new 新建Angular项目的时候会报一个错误:The Schematic workflow failed. See above. 解决办法: 只需要在后面加上 --skip-install 参数,就不会报错了。 ng new myapp --skip-install...

操作系统面试知识点总结4
#来自ウルトラマンメビウス(梦比优斯) 1 文件系统基础 1.1 文件的相关概念 文件是以计算机硬盘为载体的存储在计算机上的信息集合,可以是文本文档、图片、程序。 文件的结构:数据项、记录、文件(有结构文件、无结构式…...

Lua实现面向对象以及类的继承
0.简单前言 1、面向对象主要四个特征:封装,继承,多态,抽象 2、Lua是种简单精致小巧的语言,其本质是个表(table),变量和方法皆可看作为该表的元素。 P.S. 该博客和代码为个人编写习…...

机器学习课程学习周报五
机器学习课程学习周报五 文章目录 机器学习课程学习周报五摘要Abstract一、机器学习部分1.1 向量序列作为模型输入1.1.1 文字的向量表达1.1.2 语音的向量表达 1.2 自注意力机制原理1.2.1 自注意力机制理论1.2.2 矩阵运算自注意力机制 1.3 多头自注意力1.4 位置编码1.5 截断自注…...

vue3.0学习笔记(二)——生命周期与响应式数据(ref,reactive,toRef,toRefs函数)
1. 组合API-setup函数 使用细节: setup 是一个新的组件选项,作为组件中使用组合API的起点。从组件生命周期来看,它的执行在组件实例创建之前vue2.x的beforeCreate执行。这就意味着在setup函数中 this 还不是组件实例,this 此时是…...

C++——QT:保姆级教程,从下载到安装到用QT写出第一个程序
登录官网,在官网选择合适的qt版本进行下载 这里选择5.12.9版本 点击exe文件下载,因为服务器在国外,国内不支持,所以可以从我的网盘下载 链接: https://pan.baidu.com/s/1XMILFS1uHTenH3mH_VlPLw 提取码: 1567 --来自百度网盘超级…...

掌握互联网路由选择协议:从基础入门到实战
文章目录 路由选择协议的基本概念路由选择算法的分类分层次的路由选择协议路由信息协议(RIP)内部网关协议:OSPF外部网关协议:BGP互联网中的实际应用总结 互联网的路由选择协议是网络通信的核心,它决定了数据包如何在网…...

[笔记]ONVIF服务端实现[进行中...]
1.文档搜索: 从:https://www.cnblogs.com/liwen01/p/17337916.html 跳转到了:ONVIF协议网络摄像机(IPC)客户端程序开发(1):专栏开篇_onvif 许振坪-CSDN博客 1.1原生代码支持&…...

深度强化学习 ②(DRL)
参考视频:📺王树森教授深度强化学习 前言: 最近在学习深度强化学习,学的一知半解😢😢😢,这是我的笔记,欢迎和我一起学习交流~ 这篇博客目前还相对比较乱,后面…...

线性代数重要知识点和理论(下)
奇异值分解 奇异值分解非常重要且有趣。首先对于 n n n\times n nn对称矩阵 A A A,可以通过对角化得到其对角化形式 A P D P − 1 APDP^{-1} APDP−1,但是如果 A A A不是对称矩阵或者不是方阵,则不能进行对角化,但是可以通过奇…...

独立开发者系列(35)——python环境的理解
新手阶段,为了快速入门,基本都是直接开始写python代码实现自己想要的效果,类似搭建博客,写个web服务器,搭建简易聊天室,偶尔也写些爬虫,或者使用pygame写个简单小游戏,也有tk库做点简…...

中小企业常见的网络安全问题及防范措施
在数字化浪潮的推动下,我国中小企业的信息化建设取得了显著成就。然而,随着网络安全形势的日益严峻,中小企业在网络安全方面的短板逐渐暴露出来。本文将从中小企业网络安全现状出发,深入剖析其存在的问题,并提出针对性…...

Android 线程并发:线程通信:Handler机制
文章目录 API源码分析操作总结 API Handler相关 Handler对象.sendMessage(Message) 发送消息 Handler对象.handleMessage()空方法 自定义Handler重写handleMessage方法,处理Message Looper相关 Looper.getMainLooper() 获取App的UI线程的Looper对象 Looper…...

搭建自己的金融数据源和量化分析平台(三):读取深交所股票列表
深交所的股票信息读取比较简单: 看上图,爬虫读取到下载按钮的链接之后发起请求,得到XLS文件后直接解析就可以了。 这里放出深交所爬虫模块的代码: # -*- coding: utf-8 -*- # 深圳交易所爬虫 import osimport pandas as pd imp…...

企业级视频拍摄与编辑SDK的全面解决方案
视频已成为企业传播信息、展示品牌、连接用户的重要桥梁,如何高效、专业地制作高质量视频内容,成为众多企业面临的共同挑战。美摄科技,作为视音频技术领域的创新先锋,以其强大的视频拍摄与编辑SDK,为企业量身打造了一站…...

后端返回列表中包含图片id,如何将列表中的图片id转化成url
问题描述 如果我有一个列表数据,列表中每个对象都包含一个图片id,现在我需要将列表中的图片id转化成图片,然后再页面上显示出来 如果你有一个列表数据,列表中每个对象都包含一个图片 ID,并且你想将这些图片 ID 转化为…...

Python学习笔记44:游戏篇之外星人入侵(五)
前言 上一篇文章中,我们成功的设置好了游戏窗口的背景颜色,并且在窗口底部中间位置将飞船加载出来了。 今天,我们将通过代码让飞船移动。 移动飞船 想要移动飞船,先要明白飞船位置变化的本质是什么。 通过上一篇文章࿰…...

export在linux中的作用
在某些项目中常常使用export命令。该命令的作用是设置环境变量,并且该环境变量为当前shell进程与其启动的子进程共享。 export MODEL_NAME"stable-diffusion-v1-4"比如以上命令,如果不采用export,设置的变量仅在当前shell命令/进程…...

FFmpeg解复用器如何从封装格式中解析出不同的音视频数据
目录 1、ffmpeg介绍 2、FFMPEG的目录结构 3、FFmpeg的格式封装与分离 3.1、数据结构 3.2、封装和分离(muxer和demuxer) 3.2.1、Demuxer流程 3.2.2、Muxer流程 4、总结 4.1、播放器 4.2、转码器 C++软件异常排查从入门到精通系列教程(专栏文章列表,欢迎订阅,持续…...