http可以发送流式响应而不是“范围”响应/请求?

问题描述:

http服务器是否可以一点一点地响应数据 - 而不会响应“范围”请求?http可以发送流式响应而不是“范围”响应/请求?

例如,假设我要不断地流中的文本数据返回到客户端 - 文本数据的几乎永无止境的HTTP流,这是由客户端收到一个HTTP请求的结果。

我能做到这一点无需客户端发送我在回应我发送“接受范围”头一个“范围”的要求吗?

而且我看到code examples of servers streaming data back to clients,但预计已经发出了一系列头的客户呢?

范围请求请求对资源的字节的特定范围。期望该请求在合理的时间内结束是安全的。然而,没有任何东西阻止你在没有定期请求关闭/结束连接的情况下从服务器推送数据。这只意味着请求将花费很长时间,并可能会浪费服务器上的资源。

这有时被称为“长轮询”,尤其是当连接处于空闲状态(但仍活着)的大部分时间,发送数据,只有当事情发生在服务器上。一个例子是基于网络的聊天,尽管在现代这种情况下websockets比HTTP更合适。

+0

感谢您的反馈!因此,人们可以使用[StreamedResponse](http://docs.oracle.com/javaee/6/api/javax/ws/rs/core/StreamingOutput.html)从服务器流回数据 - 但这只是一个方便在服务器上,除非客户端已经请求了远程响应,并且服务器已经响应了该范围,否则不会由客户端进行流式传输? 因此,即使该服务器响应与StreamingOutput是不是真的从客户的角度看流,如果客户端不请求了一系列长轮询请求? –

+1

不,只是忘记了整个范围的事情(如果你想知道更多的信息,请阅读它)。 – Kayaman

+0

很酷......谢谢! –