java - HTTP状态代码410和Angular 5的其他代码之间的行为差异
问题描述
后端:Java
前端:Angular 5
考虑一下:
前端向后端发出 HTTP 请求。
后端返回一个 HTTP 状态代码作为对前端请求的响应。
对于错误处理测试,我手动更改了从后端返回的 HTTP 代码。
场景一:
在将要返回的代码设置为 FORBIDDEN (407) 时,前端正确显示 407 错误。现在,在将代码设置回 OK (200) 时,前端也正确反映了这一点。
场景二:
在将要返回的代码设置为 GONE (410) 时,前端正确显示 410 错误。但是,在将代码设置回 OK (200) 时,前端没有正确反映更改,而是继续显示错误 410。
事实上,即使停止服务器后,前端也没有显示net::ERR_CONNECTION_REFUSED
错误,而是继续显示 410。
有什么解释吗?
解决方案
使用时要小心HTTP response status 410
,因为它会被缓存在浏览器中,以表明目标资源不再从原始服务器可用,并且将不再可用。(这由服务器端决定)。查看详情。
因为是服务器端在响应时确定过期时间410
,所以浏览器会简单地缓存它,下次你尝试请求相同的资源时,浏览器不会触发请求,直到它过期。这有助于防止无用的请求。
推荐阅读
- mysql - C mysql准备语句插入空字符
- javascript - HTML JavaScript CSS - 外包代码的视差问题?
- python - Raspberry pi 使用按钮作为伺服开关
- android - SQLiteCantOpenDatabaseException:未知错误(代码 14 SQLITE_CANTOPEN):无法打开数据库
- unity3d - Unity 2D 游戏开发 - 无需 Photoshop 即可将 PSD 转换为 PSB
- android - 为什么我的 WebView 没有加载 owl-carousel 内容?
- javascript - cURL 错误 28:连接在 1001 毫秒后超时
- ios - 其他功能获得价值但不是其他
- c - 在 C 中,对数组类型进行 typedef 是一种公平的编码实践吗?
- java - Kotlin 单元测试无法解决任何问题