动静分离
来源:Node.js
动静分离
什么是动静分离
动静分离是一种在Web服务器架构中常用的优化技术,旨在提高网站的性能和可伸缩性
它基于一个简单的原则:将动态生成的内容(如动态网页、API请求)与静态资源(如HTML、CSS、JavaScript、图像文件)分开处理和分发
通过将动态内容和静态资源存储在不同的服务器或服务上,并使用不同的处理机制,可以提高网站的处理效率和响应速度,这种分离的好处包括:
- 性能优化:由于静态资源往往是不变的,可以使用缓存机制将其存储在CDN(内容分发网络)或浏览器缓存中,从而减少网络请求和数据传输的开销
- 负载均衡:通过将动态请求分发到不同的服务器或服务上,可以平衡服务器的负载,提高整个系统的可伸缩性和容错性
- 安全性:静态资源通常是公开可访问的,而动态请求可能涉及敏感数据或需要特定的身份验证和授权,动静分离可以更好地管理访问控制和安全策略
如何实现动静分离
- 使用反向代理服务器(如Nginx、Apache)将静态请求和动态请求转发到不同的后端服务器或服务。
- 将静态资源部署到CDN上,通过CDN分发静态资源,减轻源服务器的负载
- 使用专门的静态文件服务器(如Amazon S3、Google Cloud Storage)存储和提供静态资源,而将动态请求交给应用服务器处理
mime类型
不同资源有着不同的mime类型,如果怕麻烦,可以安装库
1 | pnpm i mime |
它可以自动分析文件的mime类型
文本文件
text/plain
:纯文本文件text/html
:HTML 文件text/css
:CSS 样式表文件text/javascript
:JavaScript 文件application/json
:JSON 数据
图像文件
image/jpeg
:JPEG 图像image/png
:PNG 图像image/gif
:GIF 图像image/svg+xml
:SVG 图像
音频文件
audio/mpeg
:MPEG 音频audio/wav
:WAV 音频audio/midi
:MIDI 音频
视频文件
video/mp4
:MP4 视频video/mpeg
:MPEG 视频video/quicktime
:QuickTime 视频
应用程序文件
application/pdf
:PDF 文件application/zip
:ZIP 压缩文件application/x-www-form-urlencoded
:表单提交数据multipart/form-data
:多部分表单数据
使用
1 | import http from 'node:http' |
评论