什么规则适用于MIME边界?

当你写MIME时,你将消息的不同块分隔开来。 我因为某种原因找不到解释这个边界的任何文件,但是这里是我从例子中收集到的:

  1. 边界可以是任何字母和数字的string,即“d29a0c638b540b23e9a29a3a9aebc900aeeb6a82”。

  2. 没有规则来产生边界,你可以简单地说出你心爱的人的名字,在这里,你已经有了你的边界。

  3. 如果您通过HTTP发送MIME,则必须添加指定您的标题“Content-Type”,并且标题的边界内容可能如下所示:

    多部分/格式的数据; 边界= d29a0c638b540b23e9a29a3a9aebc900aeeb6a82

  4. 在消息的正文中,边界应以“ – ”开头,如:

    –d29a0c638b540b23e9a29a3a9aebc900aeeb6a82

但遵循这些规则(和这个有用的答案),我没有生成服务器将接受的POST查询。 我错过了什么吗? 我有什么问题吗?

边界的语法是:

boundary := 0*69<bchars> bcharsnospace bchars := bcharsnospace / " " bcharsnospace := DIGIT / ALPHA / "'" / "(" / ")" / "+" / "_" / "," / "-" / "." / "/" / ":" / "=" / "?" 

而多部分实体的主体具有语法(只有重要的部分):

  multipart-body := [preamble CRLF] dash-boundary transport-padding CRLF body-part *encapsulation close-delimiter transport-padding [CRLF epilogue] dash-boundary := "--" boundary encapsulation := delimiter transport-padding CRLF body-part delimiter := CRLF dash-boundary close-delimiter := delimiter "--" 

前面的--对于消息中使用的每个边界是强制性的,后面的--对于结束边界( closures分隔符 )是强制性的。 因此,以三个以boundary边界的身体部位的多部分身体可以是这样的:

 --boundary 1. body-part --boundary 2. body-part --boundary 3. body-part --boundary--