嗯,我对于通过互联网传递的变量的转换感到困惑。
据我所知,从Web浏览器提交的所有值都在位(0 1)中转换,因为它们通过不同的OSI格式。而且这些比特是通过互联网传输的。在这里,我的问题是Bits是否会再次转换为服务器端的各自变量类型?另外,反之亦然也应该发生,对吧?我的意思是,当一个值从服务器发送并在客户端收到时?
同样,我知道XML和JSON比传递字符串值更快。在这里,我再次感到困惑。如果所有值都转换为它们的位/字节,那么如果我发送相同的值,那么XML / JSON如何比简单字符串更快?我的意思是在发送一个简单的String并将String转换为XML / JSON之间进行比较。
任何人都可以清理我的困惑吗? : - )
答案 0 :(得分:0)
同样,我知道XML和JSON比传递字符串值更快。
您知道错误然后您的混淆正确。任何人告诉你更多字符中的字符串将通过互联网更快地传输是错误的。
如果一个字符串的长度= 10并且你将它转换为xml并使其长度为30,并且如果每个字符占用1个字节,那么你只需将10个字节转换为30个字节并将其与8相乘,只需将80位转换为240位。如何更快地转移?自己计算:)
但它不仅仅是你需要的速度。考虑必须从亚马逊获取订单详细信息,您不希望格式化的内容,以便您可以轻松地将这些转换为变量吗?或者你想解析一个没有任何格式的字符串转储?这就是这些格式在其他好处中派上用场的地方。
答案 1 :(得分:0)
你有基本的想法。互联网上的通信通过一堆协议层进行,通常根据OSI参考模型命名。在顶层(应用程序级别),您有发票和酒店预订等内容,在底层您可以获得电压。发票和酒店预订以某种语法表示,例如XML或JSON(名称错误的表示层),这些语法映射到一系列字符,映射到一系列八位字节,映射到1和0的序列,它映射到电压。因此,在发送端,您向下移动堆栈以将发票转换为电压变化,并在接收端,您备份堆栈以将电压变化转换为发票。当然,路由器等中介机构也会参与其中,通常对不同的传输协议(如以太网和Wifi)进行部分解码和重新编码。
速度取决于两件事:您发送电汇的位数,以及您将发票转换为比特然后再转发的时间。这里有许多权衡,例如,如果你压缩数据,那么你将花费更少的时间来传输比特,但是有更多的时间进行转换。
在顶层,在选择如何表示发票(XML,JSON或其他语法)时,速度通常不是最重要的因素。此级别的消息设计者通常更关心表示的灵活性和可扩展性,生成和解析消息的容易程度,根据模式规则验证消息的能力等等。