Content-Disposition 解析与生成
解析或生成 inline、attachment、filename 与 RFC 5987 filename* Header
工具说明
Content-Disposition 解析与生成工具检查 inline 或 attachment Header 及参数,包括带引号 filename 和 RFC 5987 filename*。解析模式在不破坏 Quoted Semicolon 的情况下切分参数,反转义 filename,解码 UTF-8 Extended Value,优先把有效 filename* 作为 Effective Filename,记录重复参数,并提示不能直接信任为文件系统路径的 Path Separator 或 CR/LF。生成模式为国际化名称创建 ASCII Fallback Filename 与可选 UTF-8 filename*。Header 解析不会清理下载路径、验证 MIME、强制浏览器行为,也不保证兼容所有旧 User Agent。保存前必须丢弃目录部分并应用业务专用 Filename Policy。
场景配方
排查多语言下载文件名的浏览器差异
目标:把 Header 编码、文件系统安全和 User Agent 行为分开
- 解析捕获的响应 Header,对照 filename、filename* 和报告的 Effective Value。
- 生成带 ASCII Fallback 与 UTF-8 filename* 的受控 Header,并在支持浏览器矩阵测试。
- 生产下载前独立实施服务器端路径移除与 Filename Policy。
结果:得到遵循标准的 Header,并分别验证兼容性和文件系统安全。
常见问题
filename 与 filename* 有什么区别?
filename 通常是 Quoted Fallback,filename* 按 RFC 5987 携带 Charset 和 Percent-encoded 国际文字。
哪个文件名优先?
有效解码的 filename* 会报告为 Effective Filename,filename 保留为兼容 Fallback。
可以直接把解析文件名用于磁盘吗?
不可以,必须移除路径、拒绝控制字符,并应用业务 Allowlist 与重名策略。
解析支持带引号分号吗?
支持,参数切分会跟踪 Quoted String,不把文件名内部的分号当分隔符。
生成模式输出什么?
输出 inline 或 attachment、转义后的 ASCII Fallback Filename,以及可选 UTF-8 filename*。
Header 数据会上传吗?
不会,解析、编码、警告和复制都在本地完成。
继续浏览