状态发送404页面?"/>
我应该使用什么HTTP状态发送404页面?
我有一个单页应用程序,其中所有路由都使用react-router-dom
在客户端上完成。
我的应用允许一组完全匹配的路线。
对于超出该范围的任何路由,它将被视为无效,并且客户端代码会将您重定向到/404-page
路由。
所以在服务器上渲染时,我需要做同样的事情。
这是流程:
- 您将向我的服务器询问
/invalid-route
- 我的
react-router
中的代码将呈现一个<Redirect to="/404-page"/>
- 我将需要将您的请求重定向到
/404-page
- 该重定向应使用什么代码?
我想我应该设置status = 404
。因为找不到该路线,对吗?
类似:
// YOU'VE REQUESTED SOME /invalid-route
res.status(404).redirect(ROUTES.NOT_FOUND);
但是现在您要向我的服务器询问/404-page
路由。实际上将呈现一个404 Page
- 您要求
/404-page
- 我的服务器将为您呈现404页面。
- 我应该在404页面上使用哪个状态代码?
我应该使用200 Ok
吗?由于我的/404-page
是有效的现有URL,实际上将呈现某些内容?
// NOW YOU ARE REQUESTING MY /404-page
res.status(200).send( // 404 PAGE HTML );
这是正确的方法吗?
回答如下:我的直觉说,404页面应始终返回404状态。如果它带有显示该404消息的实际页面,则可以。我认为这是直观的。
这是我对请求流程的看法:
- 客户端GET /无效路由->服务器
- 服务器404
<Redirect to="/404-page"/>
->客户端 - 客户端GET / 404页->服务器
- 服务器404/404页->客户端
我认为混淆来自将404页视为现有资源,当请求时应返回200。我更喜欢将404页面看作是更少的页面,而是更多的404状态代码,其中包含一些可人工修改的html来呈现代码。
更多推荐
我应该使用什么HTTP状态发送404页面?
发布评论