构建Web应用程序时,错误页面(400,500状态代码)应该是静态的.html文件,还是可以提供动态页面以及为什么?
我认为如果你的服务器发生故障,你的动态页面会随之下降。至少对于静态页面,负载均衡器可以提供静态文件。
答案 0 :(得分:3)
就HTTP协议而言,静态和动态页面之间没有区别,所以标准明智地,为400和500提供动态页面没有问题
但是,正如您所说,如果您的应用程序出现错误,那么尝试提供动态页面可能不是最好的主意,因为它可能会由于相同的错误而失败,甚至会加剧问题,如果错误是由于数据库拥塞等原因。
答案 1 :(得分:0)
查看服务器日志并查看最常出现的错误可能会很有趣。通常我发现,对于未找到的内容,总会有大量的404。不是因为站点/应用程序中的链接断开,而是因为对蜘蛛/垃圾邮件发送者不存在的页面的随机请求。
动态404页面可能会给您的服务器增加额外负载,但这取决于服务器花费多少时间动态生成这些错误页面的错误量。
如果您有动态生成的404错误页面,那么我建议您创建一个空白的robots.txt文件和一个空白/简单的favicon.ico文件。或者在.htaccess中删除至少favicons的请求。这样做有助于减少404的数量,因此动态404错误页面可能会减少影响。
基本上虽然它没有任何问题 - 从纯粹的性能观点来看,它可能不是最好的主意。这取决于您的服务器/应用程序的负载程度,以及您的服务器有多少余量。
答案 2 :(得分:0)
我认为404s和服务器错误(500s)之间的区别是有用的。
我想为最终使用404的用户提供的一项重要功能是能够搜索其他内容,这是主应用程序提供的功能。当然你可以在静态页面上重做搜索,但那是多余的。
404的主要原因是内容已移动或已不再存在,在这种情况下,提供搜索是有价值的。并非所有面向404的用户都是服务器关闭或应用程序错误的结果。
tl; dr我将我的500s驻留在静态服务器上,并提供404的双层,第一个从(动态)应用程序中提供服务,并作为故障安全层,另一个404路由到页面在我的静态服务器上。