总结梳理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 - 作为代理或网关的服务器在规定时间内未能从上游服务器接收到请求

相关推荐
Tassel_YUE1 小时前
网络自动化04:python实现ACL匹配信息(主机与主机信息)
网络·python·自动化
Diamond技术流1 小时前
从0开始学习Linux——网络配置
linux·运维·网络·学习·安全·centos
Spring_java_gg2 小时前
如何抵御 Linux 服务器黑客威胁和攻击
linux·服务器·网络·安全·web安全
方方怪3 小时前
与IP网络规划相关的知识点
服务器·网络·tcp/ip
weixin_442643424 小时前
推荐FileLink数据跨网摆渡系统 — 安全、高效的数据传输解决方案
服务器·网络·安全·filelink数据摆渡系统
阑梦清川4 小时前
JavaEE初阶---网络原理(五)---HTTP协议
网络·http·java-ee
阿尔帕兹4 小时前
构建 HTTP 服务端与 Docker 镜像:从开发到测试
网络协议·http·docker
FeelTouch Labs5 小时前
Netty实现WebSocket Server是否开启压缩深度分析
网络·websocket·网络协议
千天夜6 小时前
使用UDP协议传输视频流!(分片、缓存)
python·网络协议·udp·视频流
长弓三石7 小时前
鸿蒙网络编程系列44-仓颉版HttpRequest上传文件示例
前端·网络·华为·harmonyos·鸿蒙