我遇到了一个非常奇怪的问题,浏览器的HTTP请求似乎被Restlet服务器使用的Simple连接器丢弃。
服务器设置:
服务器正在向浏览器提供网页,并使用javascript的XMLHttpRequest来获取更新。但是,其中一些XMLHttpRequests无法完成。 Chrome的javascript调试程序显示这些的“失败”状态; Firefox的调试器记录完成时间,没有HTTP状态代码和记录的响应。数据包嗅探器指示有问题的请求实际发送到服务器,但服务器从不响应。调试显示这些请求永远不会到达我们的服务器代码。
我已经验证了Firefox,Chrome以及IE的问题。所有三个浏览器(最新版本)都遇到了这个问题。而且,每个浏览器重复且可重复地具有完全相同请求的问题。不过,这三个浏览器的请求集合不同。
真正奇怪的是,当使用服务器的机器名称(测试在LAN上运行)时,问题确实浮出水面,但在使用机器的IP地址时却没有。从摘要切换回基本身份验证也会使问题消失,就像用Jetty替换Simple连接器一样。
我现在倾向于转向Jetty,但我仍然想知道发生了什么。有没有人见过这样的行为,或者对这里出了什么问题有所了解?
答案 0 :(得分:0)
我们最近遇到了类似Restlet的问题,这也导致一些请求没有完成。问题是Restlet中的非同步地图访问,已经修复(https://github.com/restlet/restlet-framework-java/issues/753)。
如果您看到一个或多个线程导致高CPU流量,则可能表示您受此问题的影响。
如果您的XMLHttpRequests并行进入,则可能会受到影响。