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

随笔小计-前端经常接触的http响应头(跨域CORS,性能-缓存-安全,token)

在前端开发中,响应头由后端或服务器设置,前端开发需要理解其含义,以便调试跨域,缓存,安全性能等问题。

1.CORS-跨域

响应头说明
Access-Control-Allow-Origin允许哪些源访问资源(如*https://your-site.com
Access-Control-Allow-Methods允许的 HTTP 方法(如GET, POST, PUT
Access-Control-Allow-Headers允许客户端发送的自定义请求头(如Authorization, Content-Type
Access-Control-Allow-Credentials是否允许携带凭证(如 cookie),设为trueAllow-Origin不能为*
Access-Control-Max-Age预检请求(OPTIONS)结果的缓存时间(秒)

Access-Control-Allow-Origin: *是 CORS(跨域资源共享) 机制中的一个关键 HTTP 响应头,用于告诉浏览器:该资源可以被任意源(origin)的网页访问。

Access-Control-Max-Age:当浏览器发起一个带自定义请求头使用PUT/DELETE方法发送JSON数据等,会先自动发送以OPTIONS预检请求到服务'跨域请求是否被允许',避免相同请求重复发送预检请求,设置时间控制缓存持续时间。

2.性能,缓存,安全

响应头类别作用说明前端注意事项
Connectionkeep-alive性能优化保持 TCP 连接复用,减少建连开销无需处理,浏览器自动管理
Content-Encodinggzip性能优化响应体使用 Gzip 压缩浏览器自动解压,确保服务器正确压缩文本资源
Content-Typetext/javascript;charset=UTF-8内容类型标识资源为 UTF-8 编码的 JavaScript确保编码一致,避免乱码;现代推荐application/javascript(但兼容)
Strict-Transport-Securitymax-age=31536000; includeSubDomains; preload安全强制浏览器 1 年内使用 HTTPS(含子域)⚠️ HTTP 请求将被拒绝,确保全站 HTTPS
Transfer-Encodingchunked传输机制分块传输(动态内容,无固定长度)浏览器自动处理,无需干预
X-XSS-Protection1; mode=block安全(旧)启用 XSS 过滤并阻断攻击页面📌 现代浏览器已弃用,应优先使用 CSP

Content-Encoding:响应体使用 Gzip 压缩

3.Authorization: Bearer <token>

请求头中用于传递身份认证凭证

认证方案示例说明
Bearer(最常用)Authorization: Bearer eyJhbGciOiJIUzI1NiIs...用于 JWT、OAuth 2.0 等 Token 认证。前端从登录接口获取 token 后,后续请求都携带此头。
BasicAuthorization: Basic dXNlcjpwYXNz用户名密码 Base64 编码(user:passdXNlcjpwYXNz)。仅限 HTTPS,不推荐用于 Web 前端。

使用fetch

const token = localStorage.getItem('access_token'); fetch('/api/user/profile', { method: 'GET', headers: { 'Authorization': `Bearer ${token}` } }) .then(res => res.json()) .then(data => console.log(data));

使用Axios

axios.get('/api/orders', { headers: { 'Authorization': 'Bearer ' + token } });
http://www.cnnetsun.cn/news/525740.html

相关文章:

  • 为什么90%的大数据项目都栽在数据一致性上?资深架构师总结的避坑指南
  • 在 ABAP 环境用 Customer Data Browser 替代 SE16:一套兼顾自助查询与权限合规的数据浏览方案
  • 在 ABAP Cloud 用 XCO 生成 UUID:一行拿到稳定主键,并在多种格式间自由转换
  • 【开源】基于 C# 和 Halcon 机器视觉开发的车牌识别工具(附带源码)
  • 在 ABAP Cloud 用 XCO 读取 Call Stack 与 Tenant 信息:把调试线索和云身份带进日志体系
  • 【开发者导航】完全免费且灵活的域名注册与托管平台:FreeDomain
  • 视频动作不连贯?调整帧率和引导系数的正确姿势
  • LED阵列汉字显示实验:移位寄存器协同工作原理深入解读
  • 卷积神经网络在OCR中的应用:CRNN模型部署全流程详解
  • 合成语音版权归属?建议商业使用时加入声明避免法律风险
  • ddu官网技术复现:如何用开源方案构建企业级视频生成系统
  • 人类未掌握的100项量子物理规律是什么?
  • arm64架构下RK3588多核启动原理图解说明
  • 如何建立投资护城河
  • 【5G异构网络中移动边缘计算的高效能卸载技术 】面向大规模移动用户的多无人机移动边缘计算联合部署与任务调度优化研究附Matlab代码、Python代码
  • Sambert-HifiGan与VITS对比:中文语音合成技术选型指南
  • 图解说明Multisim安装步骤与关键节点确认
  • Sambert-HifiGan多GPU推理优化:提升大规模语音合成效率
  • 异步控制在LED显示屏安装中的应用实战案例
  • 零基础入门ES工业状态监测系统
  • 【建议收藏】大模型学习路线图详解:六大部分带你入门,轻松应对秋招高薪岗位
  • 应用程序崩溃后如何读取minidump?手把手教程
  • 长文本合成失败?Sambert-Hifigan镜像优化分段处理机制,成功率100%
  • Scanner类输入异常处理操作实践
  • 依赖包冲突导致合成失败?Sambert-Hifigan镜像已预装兼容环境
  • 完整示例展示UDS 19服务在AUTOSAR架构中的集成方式
  • 高速电路设计入门必看:Altium Designer元件库使用技巧
  • Sambert-HifiGan语音合成API的鉴权与安全
  • 语音合成支持长文本吗?实测万字小说可分段合成且语调连贯
  • CRNN OCR在海关通关的应用:报关单自动识别系统