gpt4 book ai didi

Java泽西2.4.1 : content-length header requirement when using fixed length sreaming

转载 作者:太空宇宙 更新时间:2023-11-04 15:18:20 25 4
gpt4 key购买 nike

Jersey 2.4.1 使我们能够启用固定长度流。这在上传大文件时非常有用。用于启用此功能的新客户端属性是:HTTP_URL_CONNECTOR_FIX_LENGTH_STREAMING。

默认情况下,在进行上传时,在将字节发送到目的地之前,连接器会缓冲整个实体内容。这意味着客户端在上传大文件时可能会耗尽内存。启用固定长度流可以解决这个问题。

不幸的是,当请求中未指定内容长度 header (或设置为 0)时,将不支持此属性。我的问题是为什么? Jersey 运行时试图通过设置此限制来防止什么问题?流式传输数据是否需要内容长度信息?

谢谢

哈比卜

最佳答案

无论是否激活固定长度流,客户端都应该设置 header 。使用固定长度,您无需缓冲内容即可知道大小,但这仅在您实际设置 header 时才有意义。服务器不关心客户端是否缓冲内容来确定长度。

In HTTP, [the Content-Length field] SHOULD be sent whenever the message's length can be determined prior to being transferred, unless this is prohibited by the rules in section 4.4.

RFC 2616, section 14.13 Content-Length

如果不设置长度 header ,客户端可以无限期地开始流式传输,而无需缓冲区。我想这就是 Jersey 试图阻止的,因为这样服务器就不会知道内容何时结束(除了中列出的某些情况) RFC 2616, section 4.4 Message Length )。

关于Java泽西2.4.1 : content-length header requirement when using fixed length sreaming,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20670577/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com