問題タブ [spdy]

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 投票する
1 に答える
261 参照

python - zlib+dictionary を使用した spdy 名/値ブロックの圧縮/解凍エラー

spdy プロキシ サーバーを作成しようとしましたが、spdy の名前/値ブロックの圧縮/解凍に問題があります。

私は辞書で圧縮/解凍するためにpython 3.3 zlibライブラリを使用していました。

Chrome 31 から spdy フレームを受信すると、ほとんどの場合、フレームを解析できますが、一部の名前/値ブロックは正しく解凍できません。

私は3つのテストケースを持っています:

私はpython3 + zlib(このプロジェクトの前にpython 2.7を使用)とspdyが初めてです。本当にありがとうございました。

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

python - spdy3 の名前/値ブロックは、Python で解凍できない場合があります

Chrome用のspdyプロキシサーバーを構築していました。

プロキシ リクエストが Chrome から送信された場合、通常は 3 つのフレームを受け取ります。

  1. SETTINGS フレーム (正しく解析されます)
  2. https' CONNECT リクエストの SYN_STREAM フレーム (正しく解析されます)
  3. 名前/値ブロックを解凍できなかった別の SYN_STREAM フレーム (データの解凍中にエラー -3: ヘッダー チェックが正しくありません)

最後のフレームは、名前/値ブロックも含む最初の SYN_STREAM を解析できたため、非常に奇妙でした。

私は丸 2 日間問題を解決しようとしていて、spdy のバージョンを 2 から 3 に切り替えましたが、それでも解決できませんでした。

これが私の解凍関数です(Python 3.3):

ログの完全な例を次に示します。

少し説明させてください:

(1) プロキシは、3 つの spdy フレームを含むソケットから raw バイトを受信しました

(2) SETTINGS フレームが (1) のバイトから解析された

(3) SYN_STREAM フレームも解析された

(4) 解析を続行すると、別の SYN_STREAM に遭遇しました。

しかし、どういうわけか名前/値ブロック部分が解凍できません

6 ~ 8 バイトは残りのデータの長さを示します (長さ:'\x00\x00)'=41)。末尾は '\x00\x00\xff\xff' であるため、フレームを正しく分割する必要がありました。

「長さバイト」の後、圧縮された名前/値ブロックの前に、さらに 10 バイトあります。

(5) エラーがキャプチャされ、トラブル フレームのバイトがリストされました。実際の圧縮された名前/値ブロックのバイトは次のとおりです。

(6/7) chrome からしばらく応答がないので、(3)の SYN_STREAM リクエストをキャンセルするために RST_STREAM フレームを送信しました (これで問題ありません)。

解凍機能の問題点は何ですか?

または、2番目のSYN_STREAMのNVブロックを解凍する方法を知っている人はいますか?

ありがとう!

編集:

ログの完全な例を追加します。

@Mark のおかげで、.flush() が呼び出されていないことがわかりましたが、主なエラーは「不正なヘッダー」でした)

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

python - spydlay モジュールを httplib/http.client のように動作させるには?

Jetty に基づいてサーバーをテストする必要があります。このサーバーは独自のプロトコル、HTTP、HTTPS で動作し、最後に SPDY のサポートを開始しました。httplib/に基づくいくつかのストレス テストがあります。http.client各スレッドは同様の URL (クエリ文字列の一部のデータは可変) で開始し、グローバル変数に実行時間を追加し、数秒ごとにいくつかの統計を表示します。コードは次のようになります。

httplibネイティブ プロトコルを使用するクライアントはAPI を共有するためconnection、ネイティブ、HTTPConnectionまたはHTTPSConnection.

ここで、モジュールを使用して SPDY テストを追加しspdylayます。しかし、そのインターフェイスは不透明であり、その不透明性をインターフェイスに似たものに変更する方法がわかりませんhttplib。例に基づいてテスト クライアントを作成しましたが、2 番目の引数spdylay.urlfetch()はオブジェクトではなくクラス名ですが、テストで使用する方法がわかりません。on_close()を拡張するクラスのメソッドに既にテストを追加していますspdylay.BaseSPDYStreamHandlerが、他のテストと互換性がありません。それがインスタンスであれば、spdylay.urlfetch()通話の外で使用します。

インターフェイスspydlayに基づいて機能するコードで使用するにはどうすればよいですか?httplib

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

security - HTTPS の強制 | 経験?

私は、すべての HTTP リクエストを対応する HTTPS に 301 リダイレクトすることによって、通常の HTTP よりも HTTPS を強制してもよいかどうか自問していました。

下位互換性の問題 (IE、私はあなたを見ています) やその他の欠点はありますか? 検索エンジンはこれをどのように処理しますか? あなたはすでにこれを経験していますか?あなたの意見は何ですか?

Google 自身も HTTPS を強制していますが、常にではありません。IE6/7 User-Agent ヘッダーを送信している場合、リダイレクトされません。ユーザーが望む場合、HTTP の使用を許可する必要がありますか?

Electronic Frontier Foundationは、当然のことながら、常に HTTPS を使用するようユーザーにアドバイスしています。ユーザーのためにその決定を下し、HTTPS を強制することはできますか? HTTP をまったく使用しない理由はありますか?

0 投票する
3 に答える
802 参照

android - android webviewでSPDYの動作を確認する方法

皆さんこんにちは。

Android WebView での SPDY の動作を調査しています。では、私の webview が SPDY を話しているかどうかを確認する方法を教えていただけますか? 以下のパッチを適用したカスタム ROM をビルドしました。

https://codereview.chromium.org/106903017/diff/20001/android_webview/browser/net/aw_url_request_context_getter.cc

よろしくお願いします、

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

http - SPDY HTTP 2.0 と HTTP 1.1 の間の最適な互換性をどのように提供しますか?

HTTP 2.0 が SPDY の標準バージョンとして提案されていますが、プロトコル間でブラウザーとの互換性を最大限に高めるにはどうすればよいでしょうか? どちらも HTTP 1.1 にフォールバックしますが、SPDY のみをサポートし、HTTP 2.0 をサポートしない、またはその逆のブラウザーはありますか? SPDY サポートが利用できないが HTTP 2.0 サポートがある場合、SPDY は HTTP 2.0 にフォールバックしますか?

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

java - HTTP 2.0 での Netty の使用

SPDY と HTTP 2 (できれば最近のドラフト) のパフォーマンスを比較したいと思います。少しグーグルで検索したところ、scalantra には Netty 3.x ( https://github.com/scalatra/netty-extension/find/master ) 用の拡張機能があることがわかりましたが、次の場合は新しいバージョンの Netty を使用することをお勧めします。可能。Netty 4.x または 5.x で動作する同様の拡張機能を知っている人はいますか?