HTTP状态代码410与其他代码w.r.t Angular 5之间的行为差​​异

时间:2018-04-27 10:07:36

标签: java angular http http-status-code-410

后端:Java

前端:Angular 5

考虑一下:

前端向后端发出HTTP请求。

后端返回HTTP状态代码作为对前端请求的响应。

对于错误处理测试,我手动更改从后端返回的HTTP代码。

情景1:

在将要返回的代码设置为FORBIDDEN(407)时,前端正确显示407错误。现在,在将代码设置为OK(200)时,前端也正确地反映了这一点。

情景2:

在将要返回的代码设置为GONE(410)时,前端正确显示410错误。但是,在将代码设置为OK(200)时,前端没有正确反映更改,但继续显示错误410.

事实上,即使在停止服务器后,前端也没有显示net::ERR_CONNECTION_REFUSED错误,但仍继续显示410.

有任何解释吗?

1 个答案:

答案 0 :(得分:2)

使用 HTTP response status 410 时要小心,因为它会在浏览器中缓存,表示目标资源不再可用于原始服务器,并且无法再次使用。(这由服务器端决定)。请参阅 details

因为服务器端确定响应时使用410的过期时间,所以浏览器只会缓存它,下次当您尝试请求相同的资源时,浏览器不会获胜发出请求直到它过期。这有助于防止无用的请求。