我们怎么能骗到HTTP协议?(How could we fool the HTTP protocol

2019-07-18 14:50发布

虽然HTTP是无处不在谈到与它这在我的情况下,正变得越来越有问题的头的行李。 我的要传送的数据是HTTP报头大小的丝毫。

  • 有另一种,我可以用它仍然是由浏览器和其他网络的理解和不附带HTTP的行李协议?
  • 任何其他方式跳过头和目的地所以只有数据的微小转移在网络上增加吗?

Answer 1:

许多HTTP标头是可选的。 一个典型的浏览器请求比最小的请求,这可能看起来像要大得多:

GET /doc HTTP/1.1
Host: example.com
Connection: close

(我可以,因为我通过测试Web服务器响应时使用他们所有的时间,这种形式的工作要求很有信心地说telnet example.com 80 )。

也许你只需要忽略一些头获取有用的结果。



Answer 2:

HTTP请求可以是相当小的。 作为乱他的回答指出,你并不真的需要发送多个信头一个请求。 这是必不可少的只有头是主机。 我可以通过使用HTTP 1.0,其中不设有持久连接简化乱例如多一点。

GET / HTTP/1.0
Host: example.com
                                       (blank line is necessary)

回复同样可以作为一种简单

HTTP/1.0 200 OK
Content-Type: text/html

data content

在这种情况下,HTTP的开销是在请求和响应大约40个字节。 一个标准的TCP数据包是1500个字节,所以你有足够的空间在实际数据的响应包遗留下来的。

还有其他的HTTP头,和他们有值。 您可以包括高速缓存信息,并执行有条件的GET。 您可以使用HTTP / 1.1的持久套接字进行后续请求更快。 等,等你不必使用这个东西任何如果你不想要的,但有关HTTP一个好处是有当你需要它做的更复杂的协议的标准方法。

至于这样做的JavaME最小HTTP,如果你真的在乎你每次可能是最好关闭用一个普通的TCP工作编写自己的简单的HTTP客户端字节插座 。 如果你跟一个已知的服务器,你并不需要实现很多的。 (如果你在谈论任意服务器,你需要更加注重的错误处理,重定向等)。



Answer 3:

的WebSockets在HTML5来了,应该满足您的需求。 一个标准的HTTP连接可以被重新协商以改变协议的WebSockets。 但我怀疑规格可能会有点年轻,但它可能适合该法案。



文章来源: How could we fool the HTTP protocol?