二进制似乎会更紧凑,可以用标准的方式进行反序列化,为什么要使用文本呢?这似乎效率很低,web框架只能在字符串上胡乱摆弄。为什么没有二进制标准?web将变得更快,浏览器将能够非常快速地加载二进制页面。
如果我要启动一个二进制协议(HBP超二进制协议),我将定义什么类型的标准?
发布于 2009-12-12 10:24:38
HTTP协议本身是文本可读的。这很有用,因为您完全可以telnet到任何服务器并与其通信。
文本形式还允许您轻松查看与wireshark等程序的HTTP通信。然后,您可以轻松地诊断问题的根源。
HTTP定义了一种使用resources的方法。这些资源不需要是文本,它们可以是图像或其他任何内容。通过指定Content-Encoding标头,可以将文本资源作为二进制发送。您的资源类型通过Content-Type标头指定。
因此,您的问题实际上只适用于HTTP协议本身,而不适用于资源的有效负载。
网页的速度会更快,浏览器加载二进制页面的速度也会非常快。
我不认为这是真的。最慢的部分可能是连接建立和slow TCP start。
以下是HTTP响应如何发送具有二进制表示的文本资源的示例:
超文本传输协议/1.1 200 OK
服务器: Apache/2.0
Content-Encoding: gzip
内容长度: 1533内容类型:文本/html;字符集=ISO-8859-1
发布于 2009-12-12 10:36:32
基于文本的协议有许多重要的优点:
上的ECMAScript 5标准化工作。
发布于 2009-12-12 11:04:23
存在二进制通信标准,其中许多标准早于http。我构建/使用的客户机/服务器数据库协议是二进制的,它确实可以工作,而且是按字节高效的。所以问题是,为什么文本格式会在市场上取胜?
我认为可能有很多因素,但我相信这些是最重要的:
https://stackoverflow.com/questions/1891993
复制相似问题