如果我有utf-8编码数据,在HTTP正文中发送它们是否安全?问题是utf-8数据可能包含控制字符,包括空字符(二进制零),http RFC当然不允许这样做。那么如何处理这些数据呢?用base64编码?
另一方面,我在utf-8中的数据是XML和XML规范,禁止使用特殊字符(http://www.w3.org/TR/2006/REC-xml-20060816/#charsets )...
所以我猜utf-8并不安全,但utf-8中的XML是安全的,可以直接嵌入到http体中,例如:在 MIME多部分正文中,无需执行 quoted-printable 编码等操作。
BR 斯登
答案 0 :(得分:5)
HTTP允许发送ARBITRARY数据。是的UTF-8对于HTTP是安全的,但是在握手方面; 0x00在任何地方都不是真正的“安全”。 HTTP请求和响应主体都有处理任意数据的方法,MIME(通常封装HTTP POST主体)也是如此,即Length:-header。
没有控制字符可以导致兼容的HTTP实现假设在未达到Length的情况下完成正文:。
答案 1 :(得分:2)
HTTP消息体可以包含任意数据(正如Williham指出的那样)。
此外,HTTP中有引用可打印的编码,您也不需要多部分体。
您认为网络上的图片如何运作? : - )