問題タブ [keep-alive]
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.
web-services - mongooseWebサーバーでリンクを維持する方法
キープアライブ接続のマングースを使おうとしていますが、マングースが最初に接続を閉じているようです。
embed.cを変更して、接続を送り返しました:keep-alive。応答後も接続は閉じられています。
sockets - TCPキープアライブの拡張性
さまざまなデバイスの大規模な異種ネットワークについて考えてみます。これらのデバイスは、ピアツーピア方式でネットワーク上の他のデバイスにサービスを提供しています。すべてのノードでサービスの可用性を追跡するために使用されるメカニズムは、現在、通常はノードがオンラインである間、キープアライブとしてマークされたTCPソケットを使用しています。これにより、すべてのノードが他のすべてのノード(ピアツーピアインフラストラクチャのサブネット内)でソケットを開くことになります。
このようにTCPキープアライブを使用することの拡張性に関してどのような議論がありますか?
私の別のアプローチは、パブリッシュ/サブスクライブモデルを使用することです。このモデルでは、ノードが利用可能になったときに新しいサービスをネットワークにプッシュし、ピアがサービスにサブスクライブするときにそれらをキャッシュします。これは実行可能ですか?
php - PHP Curl ライブラリを使用した永続的/キープアライブ HTTP?
シンプルな PHP ライブラリを使用して、HTTP 経由でドキュメントを SOLR インデックスに追加しています。
現在、3 つのサーバーが関与しています。
- インデックス作成ジョブを実行する PHP ボックス
- インデックスされるデータを保持するデータベース ボックス
- ソーラーボックス。
80 ドキュメント/秒 (100 万ドキュメントのうち) で、PHP および solr ボックスのネットワーク インターフェイスで異常に高い割り込み率に気付きました (2000/秒; さらに、グラフはほぼ同じです。 PHP ボックスの速度が急上昇し、Solr ボックスでも急上昇します) が、データベース ボックスではそれほどではありません (300/秒)。これは単純に、データベース サーバーへの接続を 1 つ開いて再利用したためだと思いますが、Solr クライアント ライブラリの記述方法のおかげで、現在、すべての Solr リクエストが cURL を介して新しい HTTP 接続を開いています。
だから、私の質問は:
- キープアライブ セッションを開くように cURL を作成できますか?
- 接続を再利用するには何が必要ですか? -- cURL ハンドル リソースを再利用するのと同じくらい簡単ですか?
- 特別な cURL オプションを設定する必要はありますか? (例: HTTP 1.1 を強制しますか?)
- cURLキープアライブ接続に関する落とし穴はありますか? このスクリプトは一度に何時間も実行されます。単一の接続を使用できますか、それとも定期的に再接続する必要がありますか?
asp.net - ASP.NETページが認証ヘッダーを送信せずに`200OK`を返すのはなぜですか?
ノート:
この質問は、以前の改訂から範囲が広がりました。誰でも簡単に再現できるように、問題を単純化するように努めました。
Fiddlerを使用Authorization
すると、HTTPリクエストからヘッダーを消去した後、デフォルトページに対して任意のリクエストを再生でき200 OK
、有効なデータでの応答を取得できます。
バウンティアップデート
この正確な動作を再現する手順は次のとおりです。
1. ASP.NETで「新しいWebサイト」を作成し、「InsecureWebsite」という名前を付けてください。
2.編集web.config
して、認証されていないすべてのユーザーを拒否します。
3. WebサイトをDEVサーバー上の任意のディレクトリに公開し、アプリケーションの仮想ディレクトリを作成します
4.アプリケーションでスクリプトアクセス(.ASP)と統合Windows認証が有効になっていることを確認します
5. Fiddlerを開いて、トラフィックをキャプチャします
6.お気に入りのブラウザにページをロードし、Fiddler内の[インスペクター]タブを確認すると、次のようなリクエストが表示されます。
への最初の要求は、Default.aspx
を返し、401 Unauthorized
ネゴシエーションに入り、最後にを返します200 OK
。
FiddlerではAuthorization
、再生されたリクエストからヘッダーを直接消去しDefault.aspx
ても、を取得できます200 OK
。そんなことがあるものか?
解決
Fiddlerはリクエストを行うときに同じ基本接続を使用することが判明したため、接続が認証されると、同じ接続上のすべてのリクエストも最初のリクエストと同じユーザーとして認証されます。ここでFiddlerでこの機能をオフにすることができます:
Fiddlerオプションのスクリーンショットhttp://john.cognitivedelay.com/images/fiddler-options.gif
これがチェックされていない場合、Fiddler内から再生されたリクエストは、401 Unauthorized
期待どおりにを返します。
返信する時間を提供してくれたすべての人に感謝します!
python - 生き続けるPythonurllib2
Pythonのurllib2を使用して「キープアライブ」HTTPリクエストを作成するにはどうすればよいですか?
c# - キープアライブ コードが新しい RDP クライアントで失敗する
セキュア ターミナル サーバー プロジェクトでは、RDP セッションを開いたままにしておく必要があります。つまり、リモート コンピューターがタイムアウトしてセッションがロックされるのを防ぐ必要があります。少し背景:
仮想サーバーへの RDP セッションを開始し、そこでアプリケーションを開始するクライアント部分を備えた、仲介エージェントとして構成された複数の仮想サーバーがあります。そのアプリケーションは、データベースから接続データを読み取ります。これには、最終的な宛先コンピューターに接続するためのユーザー名とパスワードが含まれます。
リモート デスクトップ セッションでは、MSTSCAX.DLL から (AxImp を使用して) 抽出された ActiveX コントロールを使用します。ユーザーはリモート マシンのパスワードにアクセスできないため、セッションがタイムアウトしないようにする必要があります。
過去数か月間、Timer オブジェクトによってトリガーされる次のコードを使用して、これを実現してきました。Server 2008ボックスにアクセスするためにRDPクライアントをバージョン6にアップグレードする必要があるまでは、うまくいきました(バージョン4または5を使用していましたが、どちらかはわかりません). それ以来、SendKeys を呼び出すと HRESULT E_FAIL エラーがスローされることがあり、多くの場合、重大な問題が発生します。
誰がこれを引き起こしているのかについて考えを持っていますか? さらに良いことに、新しい RDP クライアントで動作する可能性がある、これを達成するためのより良い方法はありますか?
ありがとう、デイブ
java - Java/Python Web cron からの耳の聞こえないリクエストで App Engine/Java アプリを実行し続けるにはどうすればよいですか?
- App Engine では、アプリケーションの読み込みに 30 秒かかります
- 私のアプリケーションには約 30 秒かかります。これを修正する方法がわかりません。
- アプリがアイドル状態 (しばらくリクエストを受信しない) の場合は、再ロードする必要があります。
そのため、アプリをリロードする必要がないように、アプリに頻繁に ping を送信してユーザー アクティビティをシミュレートしたいと考えています。
しかし、落とし穴があります。. .
アプリに ping を実行すると、アプリが既に App Engine によってアンロードされている場合、Web リクエストがアプリへの最初のリクエストとなり、アプリはリロードを試みます。これには 30 秒以上かかり、読み込み時間の制限を超える可能性があります。
したがって、私の考えは、アプリにpingを実行することですが、応答を待たないことです。ブラウザからサイトにアクセスし、リクエストを作成してすぐにブラウザを閉じることで、これを手動でシミュレートしました-アプリは生き続けているようです。
Python または Java Web cron でこれを行う良い方法についての提案はありますか (Python ソリューションの方が簡単だと思います)。
java - Axis Web サービス キープアライブ
Tomcat で実行されている軸 Web サービスがあります。クライアントは、HTTP 1.1 の Connection: close ヘッダーを送信せずに接続を確立しています。これは、デフォルトが Keep-Alive であることを意味します。残念ながら、クライアントに問題があるようで、例外が発生した場合、クライアントは接続を閉じていません。これらのクライアントはバッチ ジョブで大量のトラフィックを送信しているため、すぐにすべての接続が使い果たされます。特定のハンドラー (BasicHandler を拡張) が完了するとすぐに、Web サービスに各接続を強制的に閉じさせたいと考えています。
どうすればいいですか?つまり、BasicHandler#invoke() を呼び出した後、サーバーに接続を強制的に閉じるにはどうすればよいですか?
iis - IIS で TCP キープアライブを有効にするにはどうすればよいですか?
すべて、私は、従来の ASP と Crystal レポートを使用して、Web ページへのユーザー入力 (バックエンド DB を照会) に基づいてレポートを生成する Web サイトを持っています。レポートの実行に 30 分以上かかる場合、クライアントと Web サーバーの間にあるファイアウォールがアイドル状態のまま接続をドロップするため、レポートがユーザーに表示されません。これを回避するには、HTTP または TCP のいずれかのキープアライブを使用する必要があります。
IIS 6 上の Windows 2000 の Web サーバー。Windows で TCP キープアライブ用のレジストリ キーを作成しました (ネットワーク カードの TCP オフロード機能を無効にしましたが、これが問題を引き起こす可能性があると聞いています)。デフォルトでこれを使用します。TCP/IP Builder (www.drk.com.ar) と呼ばれるソケット テスターをサーバーにダウンロードしてテストしました。これにより、正常に動作するキープアライブのオンとオフを切り替えることができるため、サーバーがそれらを送信できることがわかります。
IIS で TCP キープアライブを強制的に使用する方法を知っている人はいますか?
ありがとう!