我感兴趣的是正确的行为(标准明智或其他最佳实践)当Web服务器负载过大时:它应该返回错误代码,拒绝连接,超时,别的东西吗?Web服务器在重载时如何运行?
0
A
回答
1
最佳做法肯定是给客户的,为什么他们的要求无法处理一个明确的解释。拒绝连接或超时不知道发生了什么客户端,所以他们可能(错误地)承担任何数量的有关服务器的东西,比如服务器已经移动,服务消失了,服务器配置错误,还是真的任何可能导致拒绝的连接或超时。 503错误代码可以清楚地表明由于过载或维护服务暂时中断,并且很快会返回,因此,如果这是您的情况,那么您肯定应该返回该错误代码。
这也是为什么其他选项都比不上:
如果服务器拒绝连接,客户端可以假定服务永久不可用,或者说他们还没有正确验证(这真的应该成为一个403),但真的,被拒绝的连接可能意味着任何事情。客户端不知道服务器过载。
如果服务器超时,再次这并不能真正告诉任何东西给客户有用的。客户端可能会认为服务器无法访问,并且该服务永远不在该位置,或者可能认为该Web服务器配置不正确。再一次,客户端没有清楚地表明服务器超负荷,必须猜测。
这意味着,最好的选择是发送一个503错误。 503错误描述了客户现在无法获得服务的原因。它基本上意味着“目前服务不可用,但它很快就会来,所以再试一次”。从ietf spec:
的503(服务不可用)状态代码表示该服务器 由于临时过载 或定期维护,这将有可能一些 延迟后可缓解是目前无法处理该请求。
如果您的情况,然后告诉你的客户有503错误,所以客户不必试图猜测什么拒绝连接或超时可能意味着。 HTTP状态代码是有原因的,所以请使用它们!
相关问题
- 1. 在Web服务器上运行geotools?
- 2. 如何在运行时获取组装路径,在web服务器,服务或win应用程序中运行
- 3. 如何让服务运行定时器?
- 4. 如何通过SSH在远程服务器上运行Web服务器脚本?
- 5. 长时间运行Asyncio服务器,重新加载证书
- 6. 如何让Sonar Runner在源服务器上运行时运行?
- 7. Docker容器可以在实时Web服务器上运行吗?
- 8. 如何在https:to javascript下运行.Net Web服务服务?
- 9. 如何在Google App Engine中运行CherryPy web服务器
- 10. 如何在没有Web服务器的情况下运行php?
- 11. 如何在Apache Web服务器上运行ASP.NET应用程序?
- 12. 如何在我的Web服务器上运行Python脚本?
- 13. 如何在Web服务器上使用Webpack运行Vue cli?
- 14. 如何在Linux Web服务器上运行Phantomjs
- 15. 如何让Django在我的Web服务器上运行?
- 16. 如何在Web服务器上运行Scala文件
- 17. 如何连接从c#在Web服务器上运行的MySQL?
- 18. 在Windows中运行Python Web服务器作为服务
- 19. 如何在IIS 7.5服务器上运行我的WCF Web服务?
- 20. 运行python的Web服务器。
- 21. 嵌入式web服务器运行php
- 22. 错误运行开发Web服务器
- 23. 无法运行rinari的Web服务器
- 24. 如何在服务器上运行JavaScript
- 25. 如何在生产服务器上运行Yard服务器?
- 26. WebSphere Liberty Server(IBM Bluemix) - 在服务器上运行RESTful Web服务时出错
- 27. Pylons REPL重新评估运行Web服务器中的代码
- 28. 如何在ASP运行服务器上重定向PHP URL?
- 29. 运行一个web服务
- 30. 加载web服务时System.IO.FileNotFoundException
据的HTTP状态代码正式登记,[503服务不可用(http://tools.ietf.org/html/rfc7231#section-6.6.4)指示,其指示“服务器是目前无法处理该请求是由于临时超载或定期维护造成的。“ – approxiblue
“据”,双“表示”,对我感到羞耻两次。 – approxiblue
@approxiblue:让答案和赏金是你的:)奖励点,如果你可以使它稍微更详细。 –