【问题标题】:What makes a connection reusable是什么使连接可重用
【发布时间】:2014-05-16 13:51:52
【问题描述】:

我在 Oracle 网站上看到了这样的描述: “由于 TCP 本质上是基于流的协议,为了重用现有连接,HTTP 协议必须有一种方法来指示上一个响应的结束和下一个响应的开始。因此,需要连接上的所有消息必须具有自定义的消息长度(即,不是由连接关闭定义的)。通过设置 Content-Length 标头或在分块传输编码的实体主体的情况下实现自我划分,每个块都以一个大小开始,响应正文以一个特殊的最后一个块结束。”

Oracle doc

我不知道如何实现,谁能给我一个Java实现的例子?

【问题讨论】:

  • 你想实现什么?

标签: java keep-alive persistent


【解决方案1】:

如果您尝试以与 HTTP 相同的方式实现“自划界”:

  • HTTP 1.1 规范定义了它的工作原理,
  • (比如)Apache HTTP 库的源代码是其实现的一个示例。

事实上,建议不要尝试自己从头开始实现此 (HTTP)。使用现有的实现。


另一方面,如果你只是想实现自己的 ad-hoc 自划界方案,那真的很容易做到。

  • 发件人计算出消息的大小,以字节或字符或其他一些有意义的单位为单位。
  • 发件人发送邮件大小,后跟邮件本身。

在另一端:

  • 接收方读取消息大小,然后读取必要数量的字节、字符,以形成消息正文。

另一种方法是让发件人发送消息后跟一个特殊的消息结束标记。要完成这项工作,您需要保证没有消息包含消息结束标记,或者您需要使用某种转义机制。

实现这些方案是简单的 Java 编程。


什么使连接可重用

您在问题中引用的文字回答了这一点。

【讨论】:

    猜你喜欢
    • 2010-11-18
    • 2016-01-19
    • 1970-01-01
    • 2011-10-31
    • 1970-01-01
    • 1970-01-01
    • 2020-04-19
    • 1970-01-01
    • 2016-10-11
    相关资源
    最近更新 更多