news 2026/4/18 7:55:20

前端八股浏览器网络(1)---响应头

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
前端八股浏览器网络(1)---响应头

一、什么是响应头?

响应头是 HTTP 响应中,服务器向浏览器传递的附加信息,用于描述响应数据类型、缓存策略、跨域权限、Cookie 设置等,不包含实际业务数据。

HTTP 响应结构: ┌─────────────────────────────────────────┐ │ 状态行:HTTP/1.1 200 OK │ ├─────────────────────────────────────────┤ │ 响应头: │ │ Content-Type: application/json │ │ Cache-Control: max-age=3600 │ │ Access-Control-Allow-Origin: * │ ├─────────────────────────────────────────┤ │ 空行 │ ├─────────────────────────────────────────┤ │ 响应体:{"code":200,"data":{...}} │ └─────────────────────────────────────────┘

二、核心响应头详解

1. Content-Type(内容类型)

作用:告诉浏览器当前返回的数据是什么格式,浏览器根据它决定如何解析内容。

Content-Type说明使用场景
application/jsonJSON 数据前后端分离接口(最常用)
application/x-www-form-urlencoded表单格式普通表单提交
multipart/form-data混合格式文件上传
text/htmlHTML 页面网页返回
text/plain纯文本普通文本
image/pngimage/jpeg图片图片资源
application/octet-stream二进制流文件下载
# 示例 Content-Type: application/json; charset=utf-8 Content-Type: multipart/form-data; boundary=----WebKitFormBoundary

2. Cache-Control(缓存控制)

作用:控制浏览器如何缓存响应。

说明
no-cache每次都要去服务器协商缓存,能用缓存才用
no-store真正不缓存,每次都全新请求
max-age=3600缓存 3600 秒
public允许任何中间节点缓存(CDN、代理)
private只允许浏览器缓存
must-revalidate缓存过期后必须重新验证
# 示例 Cache-Control: no-cache Cache-Control: max-age=3600, public Cache-Control: private, max-age=86400

3. Access-Control-Allow-Origin(跨域核心)

作用:告诉浏览器允许哪些域名访问资源,解决跨域问题。

# 允许所有域名(不推荐,不安全) Access-Control-Allow-Origin: * # 允许指定域名 Access-Control-Allow-Origin: https://example.com # 允许携带 Cookie 时必须具体域名 Access-Control-Allow-Origin: https://example.com Access-Control-Allow-Credentials: true

4. Set-Cookie(设置 Cookie)

作用:服务器告诉浏览器设置 Cookie。

Set-Cookie: name=value; Path=/; Expires=Wed, 21 Oct 2025 07:28:00 GMT; HttpOnly; Secure; SameSite=Lax

属性说明:

属性说明
HttpOnlyJS 无法读取,防 XSS 攻击
Secure只在 HTTPS 下传输
SameSite防 CSRF 攻击(Strict/Lax/None)
Expires/Max-Age过期时间
PathCookie 生效路径
DomainCookie 生效域名

5. Content-Length(内容长度)

作用:告诉浏览器响应体的字节长度。

Content-Length: 348

6. Location(重定向地址)

作用:配合 301/302 状态码,告诉浏览器跳转到哪个地址。

HTTP/1.1 302 Found Location: https://www.example.com/new-page

7. Content-Disposition(文件下载)

作用:告诉浏览器这是下载文件,不是直接打开。

# 内联显示(默认) Content-Disposition: inline # 附件下载 Content-Disposition: attachment; filename="report.pdf" # 中文文件名需要编码 Content-Disposition: attachment; filename*=UTF-8''%E6%8A%A5%E5%91%8A.pdf

8. ETag / Last-Modified(协商缓存)

作用:配合 If-None-Match / If-Modified-Since 实现协商缓存。

ETag: "33a64df551425fcc55e4d42a148795d9f25f89d4" Last-Modified: Wed, 21 Oct 2025 07:28:00 GMT

三、面试高频问题

1. 跨域相关(必考)

Q:前端跨域报错,一般是哪个响应头没配?

A:Access-Control-Allow-Origin。没有这个头,浏览器会拦截响应,报 CORS 错误。

Q:带 Cookie 跨域要哪些响应头?

A:

  • Access-Control-Allow-Origin不能为*,必须具体域名

  • Access-Control-Allow-Credentials: true

2. 缓存相关(高频)

Q:Cache-Control: no-cache 和 no-store 区别?

A:

  • no-cache:不是不缓存,是每次都要去服务器协商缓存,能用缓存才用

  • no-store:真正不缓存,每次都全新请求

Q:协商缓存靠哪两个响应头?

A:ETagLast-Modified,配合请求头的If-None-MatchIf-Modified-Since

3. Cookie 相关

Q:服务器怎么种 Cookie?

A:通过响应头Set-Cookie

Q:Set-Cookie 里 HttpOnly 是什么意思?

A:JS 无法读取该 Cookie,只能浏览器自动携带,防止 XSS 攻击。

4. 文件下载/导出

Q:前端实现文件下载,后端要加什么响应头?

A:Content-Disposition: attachment; filename="xxx.xlsx",告诉浏览器这是下载文件,不是直接打开。

5. Content-Type(必问)

Q:常见的 Content-Type 有哪些?

A:

  • application/json:接口数据

  • application/x-www-form-urlencoded:普通表单

  • multipart/form-data:文件上传

  • text/html:网页

6. 重定向

Q:301/302 跳转靠哪个响应头?

A:Location,值是跳转地址。


四、响应头分类记忆

分类响应头作用
格式类型Content-Type告诉浏览器数据格式
缓存控制Cache-Control控制缓存策略
跨域Access-Control-Allow-Origin解决跨域
CookieSet-Cookie服务器种 Cookie
重定向Location跳转地址
文件下载Content-Disposition触发下载
协商缓存ETag / Last-Modified判断文件是否变化
长度Content-Length响应体字节数

五、快速记忆

响应头常考八个: Content-Type 格式类型 Cache-Control 缓存控制 Access-Control 跨域核心 Set-Cookie 种 Cookie Location 重定向 Content-Disposition 文件下载 ETag 协商缓存 Last-Modified 协商缓存 面试口诀: 跨域找 Access-Control 缓存看 Cache-Control 格式问 Content-Type 下载找 Content-Disposition

六、完整示例

HTTP/1.1 200 OK Content-Type: application/json; charset=utf-8 Content-Length: 348 Cache-Control: max-age=3600, public Access-Control-Allow-Origin: https://example.com Access-Control-Allow-Credentials: true ETag: "33a64df551425fcc55e4d42a148795d9f25f89d4" Set-Cookie: sessionId=abc123; Path=/; HttpOnly; Secure; SameSite=Lax { "code": 200, "message": "success", "data": {} }
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/18 7:53:12

思想与代码协同进化:LLM驱动启发式算法自动设计新范式

1. 当大模型遇见进化算法:一场思维革命 十年前如果有人告诉我,计算机能自己设计算法,我大概会以为他在看科幻电影。但就在上个月,我看到香港城市大学和华为团队开源的EoH框架时,手里的咖啡差点洒在键盘上——他们真的让…

作者头像 李华
网站建设 2026/4/18 7:44:36

屡刷高分却不实用?南大团队揭示最强模型实际仅得49分

现有大模型评测分数日趋饱和,但与真实体验差距显著。南京大学傅朝友团队牵头,在 Google Gemini 评测团队邀约下推出视频理解新基准 Video-MME-v2。凭借创新的分层能力体系与组级非线性评分,以及 3300 人工时高质量标注,揭示模型与…

作者头像 李华
网站建设 2026/4/18 8:03:48

2026年腾讯云优惠券领取攻略:新购/续费/升级可用

腾讯云是腾讯集团倾力打造的云计算品牌,为了吸引用户上云,经常推出各种优惠促销活动,其中就包括发放各种优惠券。本文将分享2026年腾讯云优惠券领取及使用攻略,覆盖新购、续费、升级全场景,助力大家轻松上云&#xff0…

作者头像 李华
网站建设 2026/4/18 8:04:12

一套双杀:同时搞定人类读者与 AI 系统的 GEO 写作落地框架

上周在客户现场,我看着一篇“精心优化”过的内容,陷入了短暂沉默:关键词铺得很满,标题也像模像样,甚至还专门做了 FAQ 区块。结果呢?搜索端没什么起色,AI 问答里也几乎不提它。团队很困惑&#…

作者头像 李华
网站建设 2026/4/18 8:03:56

视频封面批量制作工具完整使用指南:从素材准备到批量输出的操作全流程

写在前面如果你经常需要批量制作视频封面,可能会遇到这些情况:手头有一批背景图片需要统一添加标题文字需要给每个视频配上对应的产品展示图希望批量处理时文字样式保持一致但又不用一个个手动调前段时间我在找能够批量处理封面生成的工具时,…

作者头像 李华