我们正在 Java 中的 Spring 框架之上构建一个框架。我们希望能够添加对 HTTP 块响应的支持。spring 有这方面的 API 吗?
我们试图实现的基本上<head>
是在准备好其余响应之前发送 HTML 部分。这样客户端就可以开始下载样式表/js等。
如果有办法查看客户端是否支持 HTTP 分块响应会更好。
我们正在 Java 中的 Spring 框架之上构建一个框架。我们希望能够添加对 HTTP 块响应的支持。spring 有这方面的 API 吗?
我们试图实现的基本上<head>
是在准备好其余响应之前发送 HTML 部分。这样客户端就可以开始下载样式表/js等。
如果有办法查看客户端是否支持 HTTP 分块响应会更好。
RFC2616指定了一个TE: trailers
标头,该标头是客户端接受分块传输的明确声明,但我从未见过浏览器或设备实际发送此消息。任何发送 HTTP/1.1 请求的设备都应该接受分块传输。
根据我的经验,只要您不指定内容长度,Spring 就会自动执行分块传输。我的经验主要是使用 Spring 控制器,因此使用 JSP 的 YMMV。
HTTP 是第 7 层(/OSI 模型)/5 层(TCP/IP 模型)协议。一个给定的应用程序框架运行在它之上或之上。
因此,给定的 HTTP (get/POST) / 流水线请求本质上是使用框架在客户端打开的 TCP 管道。
在服务器端,通常您可以处理流水线请求(一个 TCP 管道中的多个 get/post 请求)。
在您的要求中,您可能希望通过建立一个新的 TCP 管道来承载请求的前半部分和后半部分,将给定的请求拆分为 2 个子请求。
现在这里的挑战是,即使您的客户端实现了这一点,服务器端也应该接受这样的拆分请求。通常,服务器端会丢弃格式错误的 HTTP 请求。
尝试使用 Apache Tiles 作为布局管理器。您可以在页面的不同磁贴上设置刷新属性,据我所知,刷新磁贴会刷新响应。
顺便说一句,您不使用压缩机制,例如容器前面的 Apache httpd 甚至 gzip servlet 过滤器吗?如果是这种情况,Apache Tiles 将无法帮助您,您最好忘记您的需求。