5

ブラウザの HTTP リクエストが、Restlet サーバーで使用される Simple コネクタによって破棄されたように見えるという、非常に奇妙な問題に直面しています。

サーバーのセットアップ:

  • Restlet 2.1.2 サーバー
  • Restlet-Simple 拡張 (Simple 4.1.21 に付属)
  • ダイジェスト認証のための Restlet-crypto 拡張

サーバーは Web ページをブラウザーに提供し、javascript の XMLHttpRequest を使用して更新を取得します。ただし、これらの XMLHttpRequests の一部は完了しません。Chrome の JavaScript デバッガーは、これらに対して「失敗」ステータスを示します。Firefox のデバッガーは、HTTP ステータス コードと記録された応答なしで完了時間をログに記録します。パケット スニファーは、問題のある要求が実際にはサーバーに送信されていることを示していますが、サーバーは応答しません。デバッグは、これらのリクエストがサーバー コードに到達しないことを示しています。

Firefox、Chrome、IE で問題を確認しました。3 つすべてのブラウザ (最新バージョン) でこの問題が発生します。また、各ブラウザは、まったく同じリクエストで繰り返し再現可能な問題を抱えています。ただし、この一連のリクエストは 3 つのブラウザ間で異なります。

本当に奇妙なのは、サーバーのマシン名 (テストは LAN 上で実行) を使用すると問題が表面化するが、マシンの IP アドレスを使用すると問題が表面化しないことです。Digest から Basic 認証に戻すと、Simple コネクタを Jetty に置き換えるのと同様に、問題も解消されます。

今は Jetty に切り替えたいと思っていますが、まだ何が起こっているのか知りたいです。誰かが以前にそのような動作を見たことがありますか、またはここで何がうまくいかないのか考えていますか?

4

1 に答える 1

0

最近、Restlet で同様の問題が発生し、一部のリクエストが完了しませんでした。この問題は、Restlet 内の非同期マップ アクセスであり、既に修正されています ( https://github.com/restlet/restlet-framework-java/issues/753 )。

1 つまたは複数のスレッドが高い CPU トラフィックを引き起こしている場合は、この問題の影響を受けている可能性があります。

XMLHttpRequests が並行して来る場合、影響を受ける可能性があります。

于 2013-06-05T06:35:20.873 に答える