問題タブ [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.
c - HTTPチャンク転送エンコーディング応答の解析
チャンクタイプのHTTP転送を解析する必要があるクライアントを開発しています。私は次のようにエラーを理解しようとして壁に頭をぶつけました。誰かが私のエラーをもう少し早くキャッチできるかもしれないなら、それをいただければ幸いです。問題を要約すると、クライアントがすべてのチャンクを受信していないように見えるため、残りのプロセスが台無しになります。前もって感謝します!
http - Transfer-Encoding: gzip と Content-Encoding: gzip の比較
やるかどうかというと、現在の状況はどうですか?
または
たとえば、帯域幅が制限されているクライアントが、圧縮された応答を受け入れる意思があることを通知し、サーバーが圧縮するかどうかを最終的に決定できるようにしたい場合。
後者は、たとえば Apache の mod_deflate と IIS が圧縮を処理する場合に行うことです。圧縮するコンテンツのサイズに応じて、追加のTransfer-Encoding: chunked
.
Vary: Accept-Encoding
また、すでに問題を示唆しているも含まれます。Content-Encoding
エンティティの一部であるように見えるため、Content-Encoding
金額をエンティティの変更に変更すると、つまり、Accept-Encoding
ヘッダーが異なると、たとえば、キャッシュは、それ以外の場合は同一のエンティティのキャッシュされたバージョンを使用できなくなります。
私が見逃した明確な答えはありますか(そして、それはいくつかのApacheニュースグループの長いスレッドのメッセージ内に埋もれていません)?
私の現在の印象は次のとおりです。
- 実際、Transfer-Encoding は、既存のサーバーとクライアントの実装によって Content-Encoding でほとんど行われていることを行う正しい方法です。
ETag
Content-Encoding は、そのセマンティックな意味合いのために、いくつかの問題を抱えています (サーバーが応答を透過的に圧縮する場合、サーバーは何をすべきでしょうか?)- その理由はニワトリと卵です: サーバーがサポートしていないため、ブラウザーがサポートしていないため、ブラウザーがサポートしていません。
したがって、正しい方法は a になると想定していますTransfer-Encoding: gzip
(または、さらに体をチャンクすると、 になり Transfer-Encoding: gzip, chunked
ます)。Vary
そして、それはトランスポートレベルのものであるため、その場合、またはETag
他のヘッダーに触れる理由はありません。
今のところ、私は の「ホップバイホップ」性についてはあまり気にしていません。これはTransfer-Encoding
、プロキシが圧縮解除され、圧縮解除された状態でクライアントに転送される可能性があるためです。ただし、元のリクエストに適切なAccept-Encoding
ヘッダーが含まれている場合、プロキシはそれをそのまま(圧縮して)転送することもできます。これは、私が知っているすべてのブラウザーの場合です。
ところで、この問題は少なくとも 10 年前のものです。たとえば https://bugzilla.mozilla.org/show_bug.cgi?id=68517を参照してください。
これに関する説明をいただければ幸いです。標準に準拠していると見なされるものと、実用的であると見なされるものの両方の観点から。たとえば、透過的な「Content-Encoding」のみをサポートする HTTP クライアント ライブラリは、実用性に反する議論になります。
box-api - Transfer-Encoding Chunked Box-API
-H "transfer-encoding: chunked"が Box.net でサポートされているかどうかを知りたいですか?
servicestack - 転送エンコーディングを無効にする方法:ServiceStack用にチャンク化
HTTPヘッダーの応答にtransfer-encoding:chunkedを追加せず、このエンコードタイプを無効にするようにServiceStackを構成する方法はありますか?
http - HTTP 1.1 Transfer-Encoding:chunkedは、毎回新しいTCPソケットを開きます
使用したプロトコル:HTTP 1.1
ヘッダーには「Transfer-Encoding:chunked」が含まれます
'Transfer-Encoding:chunked'を含む後続のリクエスト(同じサーバーへの同じリクエスト)を送信すると、リクエストごとに新しいTCPソケットが開かれているのがわかります。
同じソケットをリクエストに使用しないでください。ソケットが毎回終了するのはなぜですか?
注: フィドラーを使用して送信されたリクエスト
php - Content-Transfer-Encoding に関する問題
ここで問題があります。添付ファイルを送信するための mail() PHP スクリプトを作成しました。通常は通常のメール プロバイダーで送信します。問題は、特定の文字数までしかファイルを送信できないことです。たとえば、「新しいテキスト ドキュメント」という名前のファイルを送信できますが、「Microsoft Word の新しいドキュメント (3)」という名前のファイルを送信しようとすると、メールに届きません。
誰かがなぜこれが起こるのか教えてもらえますか?
添付ファイルを送信しますが、ファイルの名前が 10 文字の場合にのみ送信されますが、15 文字の場合は送信されません
python - Transfer-encoding: chunked をどのようにレンダリングする必要がありますか?
チャンク エンコーディングを使用して転送されたデータをブラウザがレンダリングする場合、ブラウザは、データをエンコードするためにチャンク サイズと CRLF を追加せずに元のデータをレンダリングする必要があります。正しいですか?
このコードを例として使用します。
https://gist.github.com/josiahcarlson/3250376
私のブラウザ (Chrome と FF) のレンダリング
チャンクサイズが表示されるとは思っていませんでした。
ブラウザでエンコーディング情報なしでデータをレンダリングする必要がありますか?
c# - Transfer-Encoding:WindowsPhoneでチャンク化
Transfer-Encodingでサーバー応答があります:チャンク
jsonデータの前にそのc7チャンクサイズを参照してください。
を使用して、Windows Phoneでチャンクのない生の応答ストリームを読み取るにはどうすればよいHttpWebResponse
ですか?
ヒント:サーバーでチャンク出力を無効にするには、HTTP/1.0プロトコルバージョンを指定する必要があります。しかし、Windows PhoneまたはSilverlightProtocolVersion
のクラスにはプロパティがないため、その方法がわかりません。HttpWebRequest
python - urllib2 python (転送エンコーディング: チャンク)
次の python コードを使用して、html ページをダウンロードしました。
このようなページの場合、エラーなしで URL が開きますが、html ページの一部しか出力されません!
次の行で、html ページの http ヘッダーを見つけることができます。問題は「Transfer-Encoding: chunked」によるものだと思います。
urllib2 は最初のチャンクだけを返すようです! 残りのチャンクを読むのに苦労しています。残りのチャンクを読み取るにはどうすればよいですか?