单个正文依次包含 tag 的 first、second 和二进制文件,由边界线分隔;双结束线之后还有尾声。分框与验证是独立步骤。

multipart 边界把正文切成几段

multipart/form-data 是一种由多个独立 part 组成的 HTTP 表示。一条请求可以同时携带文本字段和二进制文件,但每一段仍要有自己的头部和明确的分隔。客户端选择 boundary 参数,把它写入 Content-Type,再在正文中写出匹配的分隔行。边界只负责分框,不负责判断文件是否安全,也不会替应用决定哪些字段可以提交。 保留线序与原始字节。尾声计入 HTTP 正文预算;完整验证之后再提交。 边界负责把各段框起来 每条分隔线以两个连字符和声明的边界值开头,结束分隔线还要再加两个连字符。multipart 的 boundary 参数是必需的,长度必须为一到七十个允许字符,末尾不能有空白;必要时参数要用引号包住。RFC 7578 要求分隔符不能出现在任何封装 part 中。使用较长、不可预测的值可以把偶然撞值的概率降得很低,但随机并不等于数学上绝对不相撞,生成器仍要遵守语法。 第一个分隔符之前是 preamble,结束分隔符之后是 epilogue。MIME 读取器会忽略这两处内容,因此应用不能把尾声误当成另一个表单字段;不过它们仍是 HTTP 请求正文的字节,应计入整条请求的预算。multipart 解析器返回 EOF,不代表 HTTP 正文已经全部消费完,服务器还要决定怎样处理剩余内容。 ...

十一月 10, 2027 · 4 分钟 · XB Field Notes