2011-11-15 12 views
2

JavaでSpringフレームワークの上にフレームワークを構築しています。 HTTPチャンクレスポンスのサポートを追加できるようにしたい。これには春にAPIがありますか?SpringベースのWebアプリケーションにおけるチャンクされたHTTPレスポンス

私たちが達成しようとしていることは、残りの応答が準備される前に基本的にHTML <head>セクションを送信することです。クライアント側でスタイルシート/ jsなどのダウンロードを開始できるようにしてください。

クライアントがHTTPチャンクレスポンスをサポートしているかどうかを確認する方法がある場合は、さらにチャンスが増えます。

+0

あなたのサーブレットコンテナは何ですか?そしてあなたのビューテクノロジーは何ですか? (jsp、velocityなど) – Bozho

+0

これは、View ComponentsにJSPを使用しており、アプリケーション・サーバーとしてGeronimoで実行されています。 –

答えて

0

HTTPは、レイヤ7(/ OSIモデル)/ 5レイヤ(TCP/IPモデル)プロトコルです。また、特定のアプリケーションフレームワークは、その上または上で実行されます。

したがって、特定のHTTP(get/POST)/パイプラインリクエストは、基本的にクライアント側のフレームワークによって開かれたTCPパイプを使用しています。

通常、サーバー側では、パイプライン要求(1つのTCPパイプで複数の取得/送信要求)を処理する機能があります。

要件の前半と後半を実行する新しいTCPパイプを確立することによって、おそらく2つの副要求に分割する必要があります。

ここで問題になるのは、クライアント側がそれを達成しても、サーバー側はそのような分割要求を受け入れるべきだということです。通常、サーバー側は不正な形式のHTTPリクエストを破棄します。

0

レイアウトマネージャとしてApache Tilesを使用してみてください。あなたのページの異なるタイルにflush属性を設定することができます。そして、私が知っている限り、タイルをフラッシュして応答にフラッシュします。

ところで、コンテナの前にApacheのhttpdやgzipサーブレットフィルタなどの圧縮メカニズムを使用しないでください。この場合、Apache Tilesはあなたを助けません。あなたの必要性を忘れる方がよいでしょう。

+0

このアプリケーションは既に開発されており、数千行のJSPコードがあるため、Apache Tilesを使用することはできません。 –

1

RFC2616は、クライアントがチャンク転送を受け入れるという明示的な文章ですが、実際にブラウザまたはデバイスがこれを送信したことは一度も見たことがありません。 HTTP/1.1要求を送信するすべてのデバイスは、チャンク転送を受け入れる必要があります。

私の経験上、Content-Lengthを指定しないと、Springは自動的にチャンク転送を実行します。私の経験は主にSpringコントローラを使用しているため、JSPを使用したYMMVです。

+0

いいえ、TE:予告編はチャンクエンコードの受け入れを示していません。それは、チャンクされたデータの「予告編」における追加のヘッダの受け入れを示す。 RFCは、 "すべてのHTTP/1.1アプリケーションは"チャンクされた "転送符号化を受信して​​デコードできることを保証しなければなりません。 –

関連する問題