XMLHttpRequest中哪些字符是安全的?

时间:2013-07-09 23:39:20

标签: javascript ajax

我想将游戏结果数据作为二进制文件发送,部分是为了提高效率(每个项目发送6个字节而不是13个...这比发送的数据总量减少了一半,因为可能有几百个这样的数据项目,结果是巨大的节省),部分用于混淆(监控网络活动的人会看到看似随机的字节而不是可区分的数据)。

我的“代码”(尚未使用,只是原型)如下:

String.fromCharCode.apply(null,somevar.toString(16).split(/(?=(?:..)+$)/).map(function(a) {return parseInt(a,16);}))

这会将任何整数值转换为二进制字符串值。

但是,我似乎记得AJAX和二进制数据不混合。我想知道哪些值可以安全使用。我应该坚持32-255的范围,还是更安全,坚持32-127?在32-255的情况下,我可以使用15作为上述代码的基础,并为所有数字添加32,所以这对我有用。

但实际上我对字符范围问题更感兴趣,如果有任何跨浏览器(在支持Canvas的浏览器中)传输二进制数据的方式?

1 个答案:

答案 0 :(得分:0)

AJAX和二进制数据互不冲突。当您进行AJAX调用时,会发生什么,数据将作为表单数据发布。发布表单数据时,通常将表单数据编码为application / x-www-form-url-encode。编码数据仅包含字母/数字和某些特殊字符。例如,空格编码为%20。因此,即使将“普通”字母转换为二进制字母,它也可能无法为您节省任何空间,因为最终所有字母都必须再次编码。