什么使连接可重用

时间:2014-05-16 03:14:50

标签: java keep-alive persistent

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

请参阅Oracle doc

我不知道如何实现,有人可以给我一个Java实现的例子吗?

1 个答案:

答案 0 :(得分:1)

如果您正在尝试实施"自我划分"与HTTP一样:

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

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


另一方面,如果您只想实施自己的临时自我划分方案,那么这很容易实现。

  • 发件人指出邮件的大小,以字节或字符或其他有意义的单位。
  • 发件人发送邮件大小,然后是邮件本身。

另一端:

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

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

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


  

什么使连接可重复使用

您在问题中引用的文字可以解答。