总结梳理HTTP状态码

前端开发中和后端联调时总会遇到一些状态码的问题,本文用于介绍一些常见的状态码,以及遇到这些状态码应该如何进行排查。

400 Bad Request - 请求无效。

表示客户端发送的请求存在语法错误 ,服务器无法理解或处理该请求的语法或参数。这通常是由于客户端发送的请求参数、请求头或请求体的格式不正确引起的。

要解决 HTTP 400 错误,可以尝试以下几个步骤:

  1. 检查请求的 URL :确保请求的 URL 是正确的,并且没有任何拼写错误或错误的路径。
    1. 路径拼写错误,大小写等。
  2. 检查请求的参数:如果请求中包含参数,确保参数的格式 正确,并且没有缺失或错误的值。确保参数符合服务器预期的格式要求。
    1. 同事在controller层使用了一个对象去接收前端传递过来的对象参数。后端对象 { private Date startTime;private String name;},前端传递过来的是 startTime 是String 类型的。
  3. 检查请求的请求头:检查请求的请求头是否正确设置。某些请求头可能是必需的,例如 Content-Type,确保正确设置这些请求头。
  4. 检查请求的请求体:如果请求包含请求体(例如 POST 或 PUT 请求),确保请求体的格式正确,并且符合服务器预期的格式要求。
  5. 检查服务器端配置:有时,HTTP 400 错误可能是由服务器端配置问题引起的。检查服务器的日志文件或错误消息,以获取更多关于错误原因的信息。
  6. 使用调试工具:使用浏览器的开发者工具或其他网络调试工具,查看请求和响应的详细信息。检查请求和响应的头部、参数、数据等,以确定具体出现了什么问题。

403 Forbidden - 服务器拒绝请求

客户端没有访问所请求资源的权限 。它通常用于以下情况:

  1. 访问权限限制:服务器根据权限设置或身份验证要求,拒绝了客户端对特定资源的访问。这意味着客户端没有足够的权限来查看或操作请求的资源。
  2. IP地址限制:服务器可能会根据IP地址或来源进行访问控制,如果客户端的IP地址不在允许的范围内,服务器将返回403 Forbidden。
  3. 文件系统权限:当服务器上的文件或目录没有适当的权限设置时,服务器可能会返回403 Forbidden,阻止客户端对这些资源的访问。
  4. 防止恶意行为:服务器可以使用403 Forbidden来防止某些恶意行为,如暴力破解、恶意爬取等。

在HTTP响应中,服务器通常会提供一些额外的信息来解释拒绝访问的原因。

需要注意的是,403 Forbidden与401 Unauthorized状态码的区别在于,401表示需要进行身份验证,而403表示已进行身份验证但被服务器拒绝访问。

404 Not Found - 请求的资源不存在.

在访问一个网站时收到404 Not Found错误时,表示服务器无法找到所请求的资源。这可能是由于以下原因之一:资源(图片等静态资源)的url有问题。

  1. 资源不存在:请求的特定页面、文件或资源在服务器上不存在。这可能是由于网站结构变更、页面被删除或重命名,或者提供的URL有误。解决方法:首先,确保输入的URL正确无误。检查URL的拼写、大小写和特殊字符等。如果是通过点击链接访问的网页,请尝试刷新页面或返回到主页,然后再次尝试访问目标页面。
  2. 错误的网址重定向:如果网站进行了重定向操作,但是重定向目标无效或不正确配置,可能会导致404错误。解决方法:如果遇到了错误的网址重定向,请尝试返回到网站的主页,然后通过导航或搜索来找需要的资源。
  3. 资源权限问题:某些资源可能被服务器配置为限制访问,只允许特定用户或特定条件下的访问。

405 方法不允许:该状态码表示请求中使用的方法不被允许用于所请求的资源。

通常情况下,服务器识别到了HTTP方法(例如GET、POST、PUT、DELETE),但无法使用给定的方法来满足请求。服务器可能会在响应中提供一个Allow头部,用于指定所请求资源允许的方法。

例如,如果客户端向一个只允许GET请求的资源发送了PUT请求,服务器可能会以405方法不允许的状态码进行响应。

以下是405状态码的示例响应头部:

HTTP/1.1 405 Method Not Allowed
Allow: GET, POST

该响应表示所请求资源仅允许使用GET和POST方法,不支持其他方法,如PUT或DELETE。

4开头的都是还没有进入后端的,需要在前端根据接口进行排查。

5开头的是后端报错,大概率是后端有问题了。

500 Internal Server Error - 服务器内部错误,无法完成请求的处理

502 Bad Gateway - 作为代理或网关的服务器收到无效响应。

504 Gateway Timeout - 作为代理或网关的服务器在规定时间内未能从上游服务器接收到请求

相关推荐
车载诊断技术1 小时前
电子电气架构 --- 什么是EPS?
网络·人工智能·安全·架构·汽车·需求分析
KevinRay_1 小时前
Python超能力:高级技巧让你的代码飞起来
网络·人工智能·python·lambda表达式·列表推导式·python高级技巧
2301_819287122 小时前
ce第六次作业
linux·运维·服务器·网络
CIb0la2 小时前
GitLab 停止为中国区用户提供 GitLab.com 账号服务
运维·网络·程序人生
Black_mario2 小时前
链原生 Web3 AI 网络 Chainbase 推出 AVS 主网, 拓展 EigenLayer AVS 应用场景
网络·人工智能·web3
Aileen_0v03 小时前
【AI驱动的数据结构:包装类的艺术与科学】
linux·数据结构·人工智能·笔记·网络协议·tcp/ip·whisper
中科岩创3 小时前
中科岩创边坡自动化监测解决方案
大数据·网络·物联网
花鱼白羊4 小时前
TCP Vegas拥塞控制算法——baseRtt 和 minRtt的区别
服务器·网络协议·tcp/ip
brrdg_sefg5 小时前
WEB 漏洞 - 文件包含漏洞深度解析
前端·网络·安全
唐 城5 小时前
curl 放弃对 Hyper Rust HTTP 后端的支持
开发语言·http·rust