Http响应头
Http请求头
1.Headers中的Authorization属性
在 HTTP 请求头中,Authorization 是一个标准请求头字段,用于携带客户端的身份验证信息,告诉服务器请求者的身份以及访问权限。
语法
Authorization: <type> <credentials>
type:认证类型(Scheme),常见有:Basic:基本认证Bearer:令牌认证(如 JWT)Digest:摘要认证ApiKey或自定义类型
credentials:凭证,格式根据认证类型不同:Basic:base64(username:password)Bearer:访问令牌(token,如 JWT)
工作原理
- 客户端发送请求,并在
Authorization头里携带凭证。 - 服务器解析该头信息,根据类型验证用户身份。
- 验证通过后,服务器返回受保护资源;否则返回
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'
就是在告诉浏览器:
“这是一个二进制文件,不要尝试直接打开,应该把它当作下载内容。”

浙公网安备 33010602011771号