Http响应头

Http请求头

1.Headers中的Authorization属性

在 HTTP 请求头中,Authorization 是一个标准请求头字段,用于携带客户端的身份验证信息,告诉服务器请求者的身份以及访问权限。


语法

Authorization: <type> <credentials>
  • type:认证类型(Scheme),常见有:
    • Basic:基本认证
    • Bearer:令牌认证(如 JWT)
    • Digest:摘要认证
    • ApiKey 或自定义类型
  • credentials:凭证,格式根据认证类型不同:
    • Basicbase64(username:password)
    • Bearer:访问令牌(token,如 JWT)

工作原理

  1. 客户端发送请求,并在 Authorization 头里携带凭证。
  2. 服务器解析该头信息,根据类型验证用户身份。
  3. 验证通过后,服务器返回受保护资源;否则返回 401 Unauthorized

总结Authorization 是 HTTP 请求中用于身份认证和权限验证的关键字段。

Http响应头

1. Content-Disposition 下载附件

这行代码:

fileResponse['Content-Disposition'] = f'attachment; filename="{filename}"'

作用:告诉浏览器把响应内容作为附件下载,并且指定下载时的默认文件名,而不是直接在浏览器里打开。


1) Content-Disposition 是 HTTP 响应头

  • inline:表示可以直接在浏览器中显示内容(如图片、PDF、文本等)。
  • attachment:表示以附件形式下载,触发“另存为/下载”对话框。

在这里使用 attachment,就是强制下载。


2) filename 参数

  • 指定浏览器下载时显示的默认文件名。

  • 例如:

    Content-Disposition: attachment; filename="report.pdf"

    浏览器下载时会默认命名为 report.pdf

  • 如果不提供 filename,浏览器可能用 URL 的最后一段或一个通用名字(如 download)。


3) 行为对比

  • 未设置 Content-Disposition
    • 访问 /download/report.pdf 时,浏览器可能直接在新标签页预览 PDF
  • 设置为 attachment; filename="report.pdf"
    • 浏览器会弹出下载/保存对话框,并默认文件名为 report.pdf

一句话总结

使用

fileResponse['Content-Disposition'] = f'attachment; filename="{filename}"'

可以强制下载文件,并且指定下载时的默认文件名

2. Content-Type 提示浏览器响应数据的类型

作用:告诉浏览器响应体是二进制流数据,而不是文本、HTML、JSON 等。
浏览器看到这种类型时,不会尝试直接解析,而是交给下载处理。


1) Content-Type 是什么?

  • HTTP 响应头,用来声明返回内容的 MIME 类型
  • 浏览器根据这个类型决定如何处理数据。

2) 常见的 Content-Type

  • text/html → 普通网页
  • application/json → JSON 数据
  • image/png → PNG 图片
  • application/pdf → PDF 文件(浏览器可能直接打开)
  • application/octet-stream二进制文件(最通用、最保守)

3) application/octet-stream 的特点

  • 表示“我返回的是任意二进制数据,浏览器不要尝试解析”。
  • 浏览器一般会:
    • 触发下载行为(结合 Content-Disposition 使用效果更好)。
    • 如果没有 Content-Disposition,有些浏览器可能会提示用户“未知文件类型”,然后下载。

一句话总结

这一行:

fileResponse['Content-Type'] = 'application/octet-stream'

就是在告诉浏览器:
“这是一个二进制文件,不要尝试直接打开,应该把它当作下载内容。”

posted @ 2026-07-03 06:15  畅畅c  阅读(0)  评论(0)    收藏  举报