問題タブ [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.
python - zlib+dictionary を使用した spdy 名/値ブロックの圧縮/解凍エラー
spdy プロキシ サーバーを作成しようとしましたが、spdy の名前/値ブロックの圧縮/解凍に問題があります。
私は辞書で圧縮/解凍するためにpython 3.3 zlibライブラリを使用していました。
Chrome 31 から spdy フレームを受信すると、ほとんどの場合、フレームを解析できますが、一部の名前/値ブロックは正しく解凍できません。
私は3つのテストケースを持っています:
私はpython3 + zlib(このプロジェクトの前にpython 2.7を使用)とspdyが初めてです。本当にありがとうございました。
python - spdy3 の名前/値ブロックは、Python で解凍できない場合があります
Chrome用のspdyプロキシサーバーを構築していました。
プロキシ リクエストが Chrome から送信された場合、通常は 3 つのフレームを受け取ります。
- SETTINGS フレーム (正しく解析されます)
- https' CONNECT リクエストの SYN_STREAM フレーム (正しく解析されます)
- 名前/値ブロックを解凍できなかった別の 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() が呼び出されていないことがわかりましたが、主なエラーは「不正なヘッダー」でした)
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
security - HTTPS の強制 | 経験?
私は、すべての HTTP リクエストを対応する HTTPS に 301 リダイレクトすることによって、通常の HTTP よりも HTTPS を強制してもよいかどうか自問していました。
下位互換性の問題 (IE、私はあなたを見ています) やその他の欠点はありますか? 検索エンジンはこれをどのように処理しますか? あなたはすでにこれを経験していますか?あなたの意見は何ですか?
Google 自身も HTTPS を強制していますが、常にではありません。IE6/7 User-Agent ヘッダーを送信している場合、リダイレクトされません。ユーザーが望む場合、HTTP の使用を許可する必要がありますか?
Electronic Frontier Foundationは、当然のことながら、常に HTTPS を使用するようユーザーにアドバイスしています。ユーザーのためにその決定を下し、HTTPS を強制することはできますか? HTTP をまったく使用しない理由はありますか?
android - android webviewでSPDYの動作を確認する方法
皆さんこんにちは。
Android WebView での SPDY の動作を調査しています。では、私の webview が SPDY を話しているかどうかを確認する方法を教えていただけますか? 以下のパッチを適用したカスタム ROM をビルドしました。
よろしくお願いします、
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 にフォールバックしますか?
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 で動作する同様の拡張機能を知っている人はいますか?