HTTP頭中的Content-Transfer-Encoding

最近在用retrofit傳輸文件的時候,發現設置MultiPart之後,傳輸的內容會自動添加Content-Transfer-Encoding:binary的頭域。於是專門研究了一下這個域。

從它的命名就可以看出,這個head域是用來描述內容在傳輸過程中的編碼格式。不同於Content-Type,這個域不是必須的。不過,僅僅定義一種Content-Transfer-Encoding也是不可以的。在有效地傳輸巨大的二進制數據和便於閱讀的編碼數據之間要有一個折中。所以,至少要有兩種編碼格式:易讀的,和稠密的(高壓縮率的)。Content-Transfer-Encoding就是爲這個目的設計的。Content-Transfer-Encoding支持以下數據格式:BASE64, QUOTED-PRINTABLE, 8BIT, 7BIT, BINARY, X-TOKEN。這些值是大小寫不敏感的。7BIT是默認值,當不設置Content-Transfer-Encoding的時候,默認就是7BIT。7BIT的含義是所有的數據以ASC-II格式的格式編碼,8BIT則可能包含非ASCII字符。BINARY可能不止包含非ASCII字符,還可能不是一個短行(超過1000字符)。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章