我怀疑通过HTTP发送mime附件:
在http规范中引用以下内容:
“C.4没有Content-Transfer-Encoding:HTTP不使用RFC 1521的Content-Transfer-Encoding(CTE)字段。从MIME兼容协议到HTTP的代理和网关必须删除任何非身份CTE(在将响应消息传递给HTTP客户端之前,“quoted-printable”或“base64”)编码。从HTTP到MIME兼容协议的代理和网关负责确保消息具有正确的格式和编码,以便在该协议上安全传输,其中“安全传输”由所使用的协议的限制来定义。这样的代理或网关应该使用适当的Content-Transfer-Encoding标记数据,如果这样做将提高通过目标协议进行安全传输的可能性。“
这是否意味着专门用于仅通过http发送MIME附件,我们不应将content-transfer-encoding指定为quoted-printable或base64?
另外,当我通过JMS等其他传输方式或通过Mail发送此类附件时,conetent-transfer-encoding的行为是什么?例如,在SOAP over JMS消息中?
还发现以下与RFC 4130相关的内容:
“5.2。未使用的MIME标头和操作 5.2.1。 HTTP传输中不使用内容传输编码 HTTP可以处理二进制数据,因此不需要使用MIME [1]的内容传输编码。这种差异在[3],第19.4.5节中讨论。但是,允许二进制或8位的内容传输编码值,但不是必需的。缺少此标头不得导致事务失败。还允许在AS2消息体内对MIME正文部分进行内容传输编码。“
所以我基本上对HTTP协议特有的mime附件的行为感到困惑,并希望澄清其行为。
答案 0 :(得分:1)
HTTP不是MIME,它只是借用MIME消息格式。 HTTP中的有效负载是二进制的,并且根本没有Content-Transfer-Encoding头字段。你可以指定它,但它没有效果,并且让人们分心,看着线迹。