首页 文章

multipart / form-data中的'-'是什么?

提问于
浏览
14

我想问一个关于multipart / form数据的问题 . 我找到了multipart post的http头和Content-Type:multipart / form-data;边界= -----...--- boundaryNumber . 我想问一下,boundaryNumber和'='之间有多少' - '?

4 回答

  • 2

    没有一个 - 是强制性的 . 你可以拥有任意数量的 . 对我来说,为什么用户代理往往会增加这么多,这实际上是个谜 . 它可能是传统的,因为在过去,人们仍然经常查看实际的协议流量,它提供了一些很好的视觉分离 . 如今它毫无意义 .

    但请注意,当您在流中使用边界时,它必须以两个连字符( -- )作为前缀 . 这是协议的一部分 . 当然,大多数用户代理在其边界中使用大量连字符的事实使得这很难通过示例来看 .

    此外,最后一个边界(标记消息的结尾)以前缀为前缀,后缀为两个连字符( -- ) .

    总而言之,您可以调用边界 OMGWTFPLZDIEKTHX ,然后您的流量可能如下所示:

    Content-Type: multipart/form-data; boundary=OMGWTFPLZDIEKTHX
    
    --OMGWTFPLZDIEKTHX
    Content-Type: text/plain
    
    First part (plain text).
    --OMGWTFPLZDIEKTHX
    Content-Type: text/html
    
    <html>Second part (HTML).</html>
    --OMGWTFPLZDIEKTHX--
    
  • 31

    短划线的数量取决于您想要的数量 . 它可以是零,如果你喜欢 - 只是更多的破折号使边界更明显 .

    边界由包含两个破折号的行加上"boundary="之后的所有内容组成 . 所以如果你的 Headers 说 boundary=ABC ,边界看起来像

    --ABC
    
  • 1

    在边界定义中,不需要连字符 . 使用该边界分隔两个不同的身体部位时,必须以两个连字符开头,然后是先前定义的边界字符串 .

    这在RFC 1341 (MIME)中有解释,您可以在Multipart部分找到更多信息(链接) .

  • 1

    这完全是武断的 .

    边界的要点是定义数据的开头和结尾 . 它是什么并不重要,只要它不是内容的一部分 .

相关问题