2014-02-27 72 views
0

我有一個關於在HTTP MIME附件發送一個疑問:內容傳輸編碼的MIME頭與HTTP

在HTTP規範以下爲引用:

「C.4無內容 - 轉移 - 編碼:HTTP不使用RFC 1521的Content-Transfer-Encoding(CTE)字段。從MIME兼容協議到HTTP的代理和網關必須先刪除任何非標識CTE(「quoted-printable」或「base64」)編碼將響應消息傳遞給HTTP客戶端。從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附件的行爲,並希望得到它的行爲澄清。

回答

1

HTTP不是MIME,它只是從MIME消息格式中借用。 HTTP中的有效載荷是二進制的,並且沒有Content-Transfer-Encoding頭字段。您可以指定它,但它沒有任何影響,並讓注意線跡的人們分心。