問題タブ [twisted.web]

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 に答える
238 参照

python - 推奨されるジャンゴでツイストウェブです

WSGI コンテナーにデプロイする必要がある Django アプリケーションがあります。TwistedWeb のようなイベント ドリブン アプリ サーバーか、uWSGI のようなプロセス ドリブン サーバーのいずれかを選択できます。イベント駆動型サーバーとプロセス駆動型サーバーの違いを完全に理解しており、Django フレームワークが本質的にブロックしていることを知っています。

WSGI アプリケーションを簡単な方法で実行できる TwistedWeb に出会いました。

私の質問は次のとおりです。

1) Django が本質的にブロックしているため、uWSGI の代わりに Twisted を実行することで何か得られるでしょうか。TwistedWeb は標準の twisted ライブラリとは違うのですか? 非同期のサポートが必要な場合や、通常の機能に加えて ex チャットのサポートが必要な場合に、Django で Twisted を実行している人がいることを私は知っています。私にはそのようなユースケースはなく、私にとっては単なるウェブサイトです。

2) TwistedWeb では、単一のプロセスであり、Django は本質的に同期的であるため、要求がブロックされるため、パフォーマンスが低下しますか? または、TwistedWeb は、事前に複数のプロセスを起動し、それらの間でラウンドロビン方式でリクエストを分散する uWSGI のようなものを実行しますか? はいの場合、TwistedWeb は uWSGI より優れていますか?

3) WSGI 以外に、Twisted を Django と統合し、非同期動作を提供できるプロトコルはありますか (ここで私の運を試してみてください:))

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

python - twisted クライアントで応答データを取得する

このチュートリアルに従いましたが、サーバーから応答データを取得する方法がわかりません。

応答データがクライアントに表示されることを知っています

サーバーから返されたメッセージを取得して変数に格納するにはどうすればよいですか?

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

python - Python Twisted Web HTTPChannel とリソースの使用

認証に Station to Station Protocolを利用する特定のプロトコル仕様を書いています。これまでのところ、 、とともにTwisted Web とResourceクラスを使用してきましたが、クライアントで認証ステップが完了すると、通信は HTTP プロトコル レベルでも暗号化されます。つまり、可視性を失い、TCP セッションで暗号化されたバイトのみを受信します。メソッドのインターセプトを調べてみましたが、解析された HTTP メソッドがない場合は呼び出されません。まだ使用することは可能ですか、それとも HTTPChannelと生データを渡す機能を使用するように「ダウンシフト」する必要がありますか?render_GETrender_POSTGET /resourcerenderResource

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

twisted - ツイストでプーリング HTTP 接続を作成するには?

単一のサイトから Web ページを取得するための非常に単純なスパイダー プログラムを作成します。

こちらは最小化バージョン。

100 などのいくつかのリクエストでは、問題なく動作します。ただし、大量のリクエストの場合、失敗します。

HTTPConnectionPool、 setを使用し、それを使用maxPersistentPerHostしてAgentインスタンスを作成し、接続を段階的に作成するため、すべてのリクエスト (約 3000) が自動的にプールされ、スケジュールされ、パイプライン処理されるはずです。

しかし、そうではありません。接続はキープアライブでもプールされていません。

このプログラムでは、接続を段階的に確立しましたが、接続はプールされませんでした。各接続は本文の受信後に閉じられ、その後の要求はプールで使用可能な接続を待機しません。

したがって、リモートサーバーの接続タイムアウトが30秒に設定されているため、数千のソケットが必要になり、最終的にタイムアウトのために失敗します. 何千ものリクエストを 30 秒以内に処理することはできません。

これについて何か助けてもらえますか?

私はこれに最善を尽くしました。ここに私の発見があります。

  • エラーは原子炉が稼働を開始してからちょうど 30 秒後に発生しました。他の要因による影響はありません。
  • スパイダーにサーバーを取得させてみましょう。面白いものを見つけました。
    1. HTTP プロトコルのバージョンは 1.1 です(ツイスト ドキュメントを確認しました。デフォルトの HTTPClient は1.1 ではなく1.0です)。
    2. 明示的なヘッダーを追加しなかった場合 (最小化されたバージョンのように)、要求ヘッダーには含まれていませんでしたConnection: Keep-Alive。応答ヘッダーも含まれていません。
    3. キープアライブ接続であることを確認するために明示的なヘッダーを追加すると、要求ヘッダーには が含まれていましConnection: Keep-Aliveたが、応答ヘッダーには含まれていません(サーバーが正しく動作していると確信しています.Chromeなどの他のものはwgetでConnection: Keep-Aliveヘッダーを受け取りました。)
  • 走行中に確認する/proc/net/sockstatと、最初は急激に増加し、その後急激に減少します。(多くのソケットをサポートするために ulimit を増やしました)
  • ツイストベースのリクエストライブラリであるtreqを使用して同様のプログラムを作成します)。コードはほぼ同じなので貼り付けません。
    • リンク: https://gist.github.com/Preffer/dad9b1228fcd75cebd75
    • その挙動はほぼ同じです。プーリングではありません。treq の機能リストに記載されているように、プーリングであると予想されます。
    • 明示的なヘッダーを追加した場合Connection: Keep-Alive、応答ヘッダーには表示されません。

上記のすべてに基づいて、私は奇妙なConnection: Keep-Aliveヘッダーがプログラムを台無しにするのではないかとかなり疑っています. しかし、このヘッダーは HTTP 1.1 標準の一部であり、HTTP 1.1 として報告されました。私はこれに完全に困惑しています。

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

python - Twisted リバース プロキシ SSL バックエンド

私はツイストにかなり慣れていないので、twisted.web.proxy.ReverseProxyResource を利用してリバース プロキシを作成しようとしています。最終的には、クライアントが SSL を使用して接続するようにしたいので、リクエストを検証して、SSL バックエンド サーバーにのみ渡します。以下の (非常に) 基本的なコードから始めていますが、SSL バックエンドに接続するのに苦労しており、ドキュメントが不足していることに気づきました。誰かが私にいくつかの良い指針、または理想的にはいくつかのサンプルコードを与えることができますか?

以下のコードでは、プレーンな HTTP サーバーにヒットすることを期待しているため、明らかに機能しません。これを「ssl」するにはどうすればよいでしょうか?

いつものように、どんな助けもとても、とても、とても感謝しています。

ありがとう

アレックス

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

python - Twisted Web クライアントの HTTP バージョン

twisted.web.client.Agent を使用して HTTP リクエストを発行している場合、リクエストで強制的に HTTP 1.0 を使用するにはどうすればよいですか? デフォルトでは、HTTP 1.1 が使用されます。

編集: HTTP 1.0 の使用に興味があるのは、チャンク転送エンコーディングを無効にしたいからです。これを行う最も信頼できる方法は、HTTP 1.0 を使用することです。

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

python - Twisted は SFTP FTPS と HTTPS サーバーを同時に実行できますか

私は野心的すぎて、達成しようとしていることは twisted を使用してもできないかもしれませんが、Twisted を使用して次のすべてを実行するアプリケーションを開発したいと考えています。

  • SFTP サーバーを実行する
  • FTPS サーバーを実行する
  • HTTPS サーバーを実行する (ファイルを転送するための Web UI)

これらのプロトコルはすべて、ユーザー認証のために単一のデータベースを共有します。

また、ある時間間隔でファイル転送をトリガーできるスケジューラーを作成したいと思います。

サイトのドキュメントを読むと、このフレームワークは無限のように見えますが、内部と外部を知らずに Twisted が上記のすべてを実行できるかどうかを理解するのは困難です。

私はまだ彼らのサイトの例を調べています.

可能であれば、これを達成する方法についてのフィードバックや指針をいただければ幸いです。

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

python - IQtNetwork.QHttp リクエストの認証情報の問題

私は現在、後続のリクエストに使用されるトークンを生成するRESTful http APIを介して認証しています。

API サーバーは python twisted で記述されており、うまく機能します。認証トークンの生成はブラウザーで正常に機能します。

pyqt で記述されたソフトウェアから要求すると、最初の要求は pyqt アプリにトークンを渡しますが、pyqt アプリからの後続の要求は失敗します。これは、リモートのツイスト サーバーが完全に別のブラウザーであると認識しているためです。

javascript ajax もこれを行いますが、リクエストと共に xhrFields: {withCredentials: true} を送信することで解決できます。

PyQtでこれを解決するにはどうすればよいですか?

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

twisted - Azure Web サイトで Twisted を実行する

Azure Websites は Twisted アプリケーションをホストできますか? 例:

http://azure.microsoft.com/en-us/documentation/articles/web-sites-python-configure/からは、WSGI アプリのみがサポートされているように思えますが、Azure Websites の専門家からその方法がないことを確認したかっただけです。上記のようなものを直接実行します。

--

#twisted.web IRC チャンネルでの Glyph (Twisted の作成者) との議論からの抜粋は、この質問の Twisted の半分をカバーしています。

実際にこのようなものを直接実行する方法がない場合、Python 以外の言語を選択すると、Azure Web サイトの柔軟性が向上するようです。たとえば、http://azure.microsoft.com/en-us/documentation/articles/web-sites-nodejs-develop-deploy-mac/から、HTTP を直接話す Azure Web サイトでノード アプリをホストできるようです。 . 確認または訂正はありがたく受け取りました。

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

python - Ajax - サーバー側でフォームを検証する

サーバー側で検証する必要があるフォームを持つ単純な Web を作成しています。検証後、成功した場合、サーバーは別のページにリダイレクトします。それ以外の場合は、現在のページにエラー ポップアップが表示され、すべての入力値が保持されます。

Ajaxの使用を考えていますが、これについてはあまり経験がありません。アイデアを教えてください。