問題タブ [transfer-encoding]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
291 参照

svg - gzip されてチャンク転送された場合、SVG は部分的にレンダリングできますか?

動的に生成された大規模な SVG があり、比較的低速のインターネット接続で提供されています。できるだけ早く表示できるように最適化しようとしています。サーバーを Content-Encoding: gzip および Transfer-Encoding: chunked に設定した場合、SVG ビューアはそれを利用して、転送時に部分的にレンダリングしますか? そうでない場合、ストリームとしてレンダリングする他の方法はありますか? それをいくつかの SVG の断片に分割することはできますが、それは大変な作業になるでしょう。サーバーの設定を望んでいました...

最も一般的なユーザーは、IE7 と Adob​​e SVG Viewer プラグインを使用します。

問題があるとは思えませんが、私は C#/ASP.NET と IIS6 を使用しています。

0 投票する
5 に答える
1913 参照

c# - HTML に改行を安全に挿入する

ユーザーがhtmlをコピーしてフォームに貼り付けることができるアプリケーションがあります。この HTML はメールとして送信され、メール サーバーは 1 行あたり 1000 文字を超えることを許可しません。したがって、ユーザーが送信を押した後、html に改行 (\r\n) を挿入したいと思います。コンテンツを変更せずにこれを行うにはどうすればよいですか?

私の考えはこれです:

しかし、それは結果を変えないことが保証されていますか? '<' は属性に使用できませんか?

編集:HTMLにはif(x <3)のようなスクリプトブロックがある可能性があるため、実際にはこれは機能しないと考えています。私が必要としているのは、js または C# で動作する HTML プリティ プリンターだと思います。

0 投票する
0 に答える
651 参照

axis2 - axis2.xml で transfer-encoding をコメントしても、応答の content-length ヘッダーが存在しない

axis2 1.3 バージョンの TOMCAT 6.0.18 で axis2 サービスを実行しています。

transfer-encoding 要素をコメント化してチャンクを無効にし、以下に示すように HTTP を 1.0 に変更しました。

また、サービス実装クラスに LifeCycle インターフェイスを実装しました。

init()メソッドコードは次のとおりです。

これらの変更にもかかわらず、サービスを呼び出したときに HTTP 応答ヘッダーに content-length が表示されません。何か案は?

0 投票する
1 に答える
1665 参照

java - Transfer-encoding:chunked を AppEngine 上の Java で有効にする方法

このトピックについて Google 検索を何度も行いましたが、何も見つかりませんでした (AppEngine が「resp.setHeader("transfer-encoding", xxxx)」への呼び出しを無視することを確認する以外は)。

私の問題は、完了するまでに少し時間がかかるサーバー プロセスがあることです (平均 3 秒以下) が、連続したストリームで結果を生成します (つまり、最初のデータ オブジェクトはわずか 10 ミリ秒後に準備が整います)。

現在、サーバーは応答をバッファリングしてから、クライアントに表示するためにすべてを吐き出します。これは機能しますが、ユーザーは最初の結果を確認する前にプロセス全体が完了するのを待たなければならないため、優れたユーザーエクスペリエンスではありません...

チャンク転送を使用すると、最初の応答をクライアントにすぐに送信できるため(そして、後続のデータが利用可能になるとすぐにストリーミングできるため)、これが解決されると思います。

私の問題は、チャンク転送を有効にする方法がわからないことです。

チャンク転送とアプリ エンジンをグーグル検索すると、ほとんどの場合、ブロブストアからのチャンク転送を無効にしたい人からの投稿、またはチャンク転送がデフォルトで有効になっているという投稿が表示されます。ただし、これまでの私のテストでは、少なくとも私のアプリケーションでは、これは正しくないことが示されています。

同様に、非アプリ エンジンの参照では、'transfer-encoding' コンテンツ ヘッダーの設定について説明されていますが、これは AppEngine では明示的に無視されています (少なくとも、python docs によると、Java 側では何も見つかりませんでした。明示的に、しかし私がテストしたときも機能しませんでした)。

最後に、respose オブジェクトのフラッシュ、応答ライターの取得とフラッシュ、応答出力ストリームの取得とフラッシュなどを既に試しましたが、違いはありませんでした。

だから - 私の質問は: チャンク転送を有効にするにはどうすればよいですか?

0 投票する
1 に答える
551 参照

image - マルチパート投稿で画像をアップロード - 転送エンコーディングの設定、各パートのヘッダーの設定

Java を使用して、Constant Contacts API にマルチパート フォーム リクエストを実行して画像をアップロードする必要があります。ファイルを記述するために仕様ごとに XML を使用して 1 つの部分を作成する必要があり、2 つ目の部分はファイル自体である必要があります。問題ない。問題は、httppost を適切に構築することです。相対コードの抜粋を次に示します。

MultipartEntity entity = new MultipartEntity(HttpMultipartMode.BROWSER_COMPATIBLE, null, null); entity.addPart("Body", new StringBody(content,"application/atom+xml",Charset.forName( "UTF-8" ))); entity.addPart("File", new FileBody (new File("C:\temp\removeRed.gif"), "image/gif"));
httppost.setEntity(entity); HttpResponse response = httpclient.execute(httppost); return response;

常に 404 応答が返されます。有効な認証済み接続があり、投稿先のリンクが正しいことはわかっています。彼らの仕様によると、最初の部分の content-type ヘッダーは application/atom+xml に設定する必要があります。彼らが与える他の仕様は、2番目の部分であるファイルの転送エンコードをバイナリに設定する必要があるということです。各「部分」について、ヘッダー、転送エンコードなどを適切に設定する方法について、いくつかの光を当ててください。

0 投票する
1 に答える
1871 参照

http - Apache Abdera でのチャンク転送エンコーディングの問題

Apache Abdera を使用して Atom マルチパート データをサーバーに POST していますが、特定できない奇妙な問題がいくつかあります。

チャンク転送エンコーディングの問題のように見えますが、確かなことは経験が不十分です。この問題は、送信した要求に必要な 2 つではなく、1 つの MIME 部分しか含まれていないことを示すエラーをサーバーがスローすることで明らかになります。インターフェイスに Wireshark を接続して会話をキャプチャしたところ、次のようになりました。

サーバーの応答:

私のクライアントは続けます:

この時点で、サーバーは次のように応答します。

エラーを示す (よく理解されている)。私のサーバーは、base64 でエンコードされたビットの山を出力ストリームにストリーミングし続けますが、その間、サーバーはリッスンしていないため、要求が間違っていたと既に判断されています。

残念ながら、私は HTTP レイヤーを担当していません。これはすべて、Abdera が Apache httpclient を使用して処理します。これを行う私のコードは次のようになります。

ここで、SWORDMultipartRequestEntity は標準の Abdera MultipartRequestEntity クラスのコピーであり、追加のヘッダーがいくつかスローされています (たとえば、上記のスニペットのパッケージングを参照してください)。「預金」引数は、アトム部分と入力ストリームを保持する単なるオブジェクトです。

デバッガーを接続すると、このコード行に問題なく到達しますが、それがネズミ穴に消えて、このエラーが返されます。

ヒントやヒントはありますか?攻撃の角度をかなり使い果たしました。

私にとって際立っている唯一のことは、atom:entry ドキュメントの直後に、「0」だけの改行があることです。これは、チャンク転送エンコーディングのように見え、「終了しました」を表しています。どうやってそこにたどり着いたのか、本当に効果があるのか​​ はわかりません。大変助かりました。

乾杯、

リチャード

0 投票する
1 に答える
418 参照

php - Transfer-Encoding:チャンクを使用して PHP から HTTP 1.1 フッターを送信できますか?

PHP で gzip 圧縮された Content-Encoding を使用したチャンク Transfer-Encoding の手動実装を試みて失敗しましたが、Apache で mod_deflate を使用することに戻りました。

唯一の問題は、返信と一緒に送信したいフッターがいくつかあることです (Last-Modified または ETag など、同じコンテンツに対して 304 リクエストを送信できます)。HTTP 1.1 仕様では、チャンクされた応答でフッター (ヘッダーと同様、最後に来るだけ) が提供されますが、PHP はその機能を提供していないようです。

可能?

(手動の実装は素晴らしかったです - 私は gzip マスターではなく、PHP が提供するさまざまな zlib func には、有効な gzip されたチャンクを作成するものは含まれていません。時間の約 50% で動作させることができましたが、残りの 50% は壊れるだろう.ドー!)

0 投票する
1 に答える
14059 参照

spring - チャンク転送エンコーディングが Firefox で尊重されないのはなぜですか?

Apache Tomcat/6.0.18 で実行されている Spring MVC コントローラーを介して大きなドキュメントをストリーミングしています

サイズが大きく、(最終的には) 動的に生成されるため、チャンク化された Transfer-Encoding を使用することにしました。

ただし、これをFirefoxで開くと、次のようになります。

チャンク サイズをストリームに関するメタデータとして読み取るのではなく、ストリームの一部として読み取ります。

Live HTTP ヘッダーを使用すると、Transfer-Encoding ヘッダーが受信されていることがわかります。

したがって、チャンクサイズが正しく解釈されない理由がわかりません。wget を使用してリクエストを行うと、返されたドキュメント内にチャンク サイズの文字も表示されるため、正しくエンコードされていません。誰でも理由がわかりますか?

Wireshark での送信を確認します: (「800」がストリーム全体で繰り返されることに注意してください) 0x800 = 2048 であることに注意してください。これは、クラス ChunkedOutputStream で使用されるデフォルトのチャンクサイズです。

ChunkedOutputStream を作成せずに直接出力ストリームにコピーすると、チャンク サイズがまったく表示されません。

では、これがチャンクされているかどうかはどうすればわかりますか? もしそうなら、私はチャンクサイズを見ませんか?

0 投票する
2 に答える
17747 参照

http - Transfer-Encodingがチャンク化されたHTTP応答の最大チャンクサイズはいくつですか?

w3.org(RFC2616)は、チャンクの最大サイズを定義していないようです。ただし、最大チャンクサイズがないと、チャンク拡張用のスペースはありません。最大チャンクサイズが必要です。そうでない場合、理解できない場合はチャンク拡張を無視することはできません(引用:) "MUST ignore chunk-extension extensions they do not understand"

0 投票する
1 に答える
3532 参照

c# - Chunked Transfer Encoding を使用してクライアントにデータを送信する

宿題の練習用にストリーミング ビデオ サーバーを構築しています。チャンク転送エンコーディングを使用してデータをクライアントに送信したいと考えています。これは私のコードです:

しかし、クライアントは真のデータを受け取りません。Wireshark を使用してパケットをキャプチャすると、クライアントがチャンク エンコーディングの 2 つの端を受信することがわかります。

クライアントからの接続をリッスンするために TcpListener を使用しています:

Chunked Transfer Encoding を使用してクライアントにデータを送信する正しい方法を教えてください。それは有り難いです。