总结梳理HTTP状态码

news/2025/2/23 0:10:11/

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

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


http://www.ppmy.cn/news/1084327.html

相关文章

介绍几种使用工具

FileWatch,观测文件变化,源码地址:https://github.com/ThomasMonkman/filewatch nlohmann::json,json封装解析,源码地址:https://github.com/nlohmann/json optionparser,解析选项,源…

简明易懂:Python中的分支与循环

文章目录 前言分支结构if 语句:单一条件判断else语句:提供备选方案elif 语句:多条件判断嵌套的分支结构:复杂条件逻辑 循环结构for循环:遍历序列range()函数与for循环while循环:条件重复循环控制&#xff1…

从Matrix-ResourceCanary看内存快照生成-ForkAnalyseProcessor(2)

不同于LeakCanary,在Matrix中,主要是通过Resource Canary来监控内存泄漏问题的,且监听的泄漏对象只支持Activity,官方说明如下: 结合分析LeakCanary的经验可知,要实现Activity内存泄漏监听,总体上应该要实现两大功能: Activity生命周期监控查找泄漏对象并得到GC Root P…

使用nginx-lua配置统一url自动跳转到hadoop-ha集群的active节点

下载安装nginx所用的依赖 yum -y install gcc zlib zlib-devel pcre-devel openssl openssl-devel下载nginx wget http://nginx.org/download/nginx-1.12.2.tar.gz tar -xvf nginx-1.12.2.tar.gz稍后安装nginx 安装lua语言 yum install readline-develcurl -R -O http://w…

【1921. 消灭怪物的最大数量】

来源:力扣(LeetCode) 描述: 你正在玩一款电子游戏,在游戏中你需要保护城市免受怪物侵袭。给你一个 下标从 0 开始 且长度为 n 的整数数组 dist ,其中 dist[i] 是第 i 个怪物与城市的 初始距离&#xff08…

CentOS下多网卡绑定多IP段时导致只有一个会通的问题解决

CentOS下多网卡绑定多IP段时导致只有一个会通的问题解决 虚拟机配置多个网络地址,结果同时只能有一个ip是通的, 原因:Linux默认开启了反向路由检查导致的,比如说外面访问eth0的网卡,而网关在eth1上,又或者从…

Linux--进程--创建子进程一般目的

父进程创建子进程的目的:简单来说:给特定的输入,给出特定的输出 父进程希望复制自己,使父、子进程同时执行不同的代码段。这在网络服务进程中是常见的——父进程等待客户端的服务请求。当请求到达,父进程调用fork&…

京东获得JD商品详情 API 接口文档(含请求代码)

item_get-获得JD商品详情 API测试工具 注册开通 公共参数 名称类型必须描述keyString是调用key(必须以GET方式拼接在URL中)secretString是调用密钥api_nameString是API接口名称(包括在请求地址中)[item_search,item_get,item_sea…