创建多部分表单边界的有效字符是什么?

14
在HTML表单POST请求中,用于创建多部分边界的有效字符是什么?
2个回答

16
根据RFC 2046第5.1.1节:
 boundary := 0*69<bchars> bcharsnospace

 bchars := bcharsnospace / " "

 bcharsnospace := DIGIT / ALPHA / "'" / "(" / ")" /
                  "+" / "_" / "," / "-" / "." /
                  "/" / ":" / "=" / "?"

因此,它可以由字母数字和列表中看到的标点符号组成,长度在1到70个字符之间。除了末尾外,允许使用空格。


我刚刚测试了一下,看起来Apache不接受“,”符号。 - lajos
@Chris,使用哪些“安全”的字符比较好? - Pacerier
2
嗯,我不能画剪刀 --8<--- 切这里 --8<-- - Jasen

1

关于边界内容方面没有规则,但它不应出现在您的消息任何部分中,通常是随机生成的数字、字母或两者的组合,以确保唯一性并与任何可能的词典词汇区别开来。因此,当您开始编写消息时,每个数据类型部分都由“-”分隔,后跟边界序列和内容类型+编码。最后一个部分后是“-”,然后是边界,然后是“-”,用于界定消息的结尾。多部分内容的工作方式是在电子邮件的“Content-type:”头中指定边界。边界用于分隔不同的内容类型,看起来像这样:

Content-type: multipart/mixed; boundary="fU3W4Vzr4G3D54f3"

2
哦,但是有规则的,即使大多数人从未违反它们。 :-) - C. K. Young
规则是它不能出现在您提交的消息中。我想措辞不当,但是为什么要点踩呢?嘘~ :P - camflan
@Pacerier,有规则需要遵守,这些规则在RFC-2046中,如果你正在编写电子邮件,你必须遵循这些规则,如果你正在阅读邮件,则应该更加宽容。 - Jasen

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接