curl 为什么错误410是用户错误而不是服务器错误?

noj0wjuj  于 2022-11-13  发布在  其他
关注(0)|答案(2)|浏览(282)

为什么将错误410视为用户错误(4xx)且不是重定向(3xx)或服务器错误(5xx)?我向服务器请求一个有效载荷,服务器返回一个链接。我复制了链接,链接给出410?验证链接是否确实存在于他们的服务器上不是我的错。但同时,从服务器的Angular 来看,错误源于我,因为我访问了一些不存在的东西,类似于404,我访问了一些从来不存在的东西。
有谁能帮我理解这背后的决定吗?
Code 410
“410 Gone”客户端错误响应代码表示在源服务器上对目标资源的访问不再可用,并且这种情况可能是永久性的。
如果您不知道这种情况是暂时性的还是永久性的,则应使用404状态代码。

0lvr5msh

0lvr5msh1#

为什么错误410是用户错误而不是服务器错误?
这不是“用户”错误,而是客户端错误;标签反映了客户端-服务器架构的约束,但是使用更直接指向请求内容的标签可能比使用客户端(或用户)的标签更好。
实际上,它是一个客户端错误,原因与404是一个客户端错误相同;它特别关注HTTP请求的目标资源。
在Web环境中,它确实有一些(不完美的)意义--客户端跟踪了一个断开的链接(这可能是服务器当前表示的结果,但也可能来自跟踪过时表示中的链接、跟踪过时书签、不同服务器提供的表示中的拼写错误等)。

ctrmrzij

ctrmrzij2#

这不是一个错误的问题,它只是意味着请求不应该被认为在未来工作(它不应该被重试)。而一个服务器错误(如5xx错误)可以定期重试,并最终应该在未来的某个时候工作,因为请求本身被认为是有效的。

相关问题