对HTTP 4XX Code 的重新理解

一直以来,知道HTTP Code 4XX,代表客户端错误。但对此没有深入的理解。以为 HTTP 请求都没有发往服务器端。但如果不发送,怎么知道是客户端错误呢?

真实情况是发送了的,只是客户端发送的请求的参数有误、没有身份验证信息、服务器端没有对应的资源等情况,都会返回 4XX 错误。比如常见的 404,只有和服务端有交互,才能知道是 404。

趁着这个机会,又重新学习了一下其他的错误码。

  • 425 Too Early,代表服务器不愿意冒险处理此请求,原因是处理该请求可能存在”重放攻击“的风险。
  • 414 URI Too Long,请求的URI长度超过了服务器能够处理的长度。
  • 400 Bad Request,语义有误,服务端无法理解,除非进行修改,否则客户端不应该重复提交该请求;请求参数有误。
  • 401 Unauthorized,请求需要验证用户身份,请求时,应包含 Authorization 头信息。
  • 403 Forbidden,服务器端理解请求,但拒绝执行。在非 HEAD 请求的情况下,如果服务器能够将清楚为何请求不被执行,那就应该返回拒绝的原因。

参考文档

HTTP 响应代码 - HTTP | MDN