HTTP状态码全解析
1. 状态码分类
类别 | 范围 | 含义 |
---|---|---|
1xx | 100-199 | 信息性:请求被接收,需进一步处理(临时响应) |
2xx | 200-299 | 成功:请求被正确处理 |
3xx | 300-399 | 重定向:需后续操作完成请求(如跳转到新URL) |
4xx | 400-499 | 客户端错误:请求无效或权限不足(问题在客户端或请求本身) |
5xx | 500-599 | 服务器错误:服务端处理失败(问题在服务器或依赖服务) |
2. 1xx(信息性状态码)
100 Continue
- 含义:客户端应继续发送请求。
- 常见原因:
- 客户端发送请求头后,服务器需要确认请求是否可接受(如大文件上传)。
- 解决方案:
- 客户端在请求头中添加
Expect: 100-continue
,等待服务器确认后再发送请求体。
- 客户端在请求头中添加
- 示例代码(Java):
// Spring Boot控制器 @PostMapping("/upload") public ResponseEntity<String> handleUpload(@RequestBody byte[] file) {// 处理文件上传return ResponseEntity.status(200).body("Upload successful"); }
101 Switching Protocols
- 含义:服务器切换协议(如HTTP → WebSocket)。
- 常见原因:
- 客户端请求协议升级(如
Upgrade: websocket
)。
- 客户端请求协议升级(如
- 解决方案:
- 服务器需支持协议切换(如通过
Upgrade
头)。
- 服务器需支持协议切换(如通过
- 示例代码(Node.js):
const WebSocket = require('ws'); const wss = new WebSocket.Server({ noServer: true }); wss.on('connection', (ws) => {ws.on('message', (message) => {ws.send(`Received: ${message}`);}); });
102 Processing (WebDAV)
- 含义:服务器已收到请求,正在处理中。
- 常见原因:
- 长时间处理请求(如批量操作)。
- 解决方案:
- 客户端需等待最终响应。
103 Early Hints (HTTP/3)
- 含义:预加载资源(如
Link
头提供跳转目标)。 - 常见原因:
- 服务器主动提示客户端预加载资源。
- 解决方案:
- 在响应头中添加
Link: </related-resource>; rel=preload
。
- 在响应头中添加
3. 2xx(成功状态码)
200 OK
- 含义:请求成功。
- 常见原因:
- 资源正常返回。
- 解决方案:
- 无特殊处理,直接返回数据。
201 Created
- 含义:资源创建成功。
- 常见原因:
POST
/PUT
请求成功创建新资源。
- 解决方案:
- 返回新资源的URL(如
Location
头)。
- 返回新资源的URL(如
204 No Content
- 含义:请求成功,但无响应体。
- 常见原因:
- 资源更新成功但无需返回数据。
- 解决方案:
- 仅返回头信息,如
Content-Length: 0
。
- 仅返回头信息,如
206 Partial Content
- 含义:范围请求成功(如断点续传)。
- 常见原因:
- 客户端请求部分内容(如
Range: bytes=0-100
)。
- 客户端请求部分内容(如
- 解决方案:
- 返回
Content-Range
头和部分数据。
- 返回
4. 3xx(重定向状态码)
301 Moved Permanently
- 含义:资源永久移动。
- 常见原因:
- URL永久变更(如域名迁移)。
- 解决方案:
- 在响应头中设置
Location
指向新URL,并更新缓存。
- 在响应头中设置
302 Found
- 含义:资源临时移动。
- 常见原因:
- 临时跳转(如登录后重定向)。
- 解决方案:
- 客户端需重新请求新URL,但不更新缓存。
304 Not Modified
- 含义:资源未修改(缓存有效)。
- 常见原因:
- 客户端缓存未过期(如
If-Modified-Since
匹配)。
- 客户端缓存未过期(如
- 解决方案:
- 返回
304
并跳过响应体传输。
- 返回
307 Temporary Redirect
- 含义:临时重定向(禁止方法改变)。
- 常见原因:
- 需保留原请求方法(如
POST
跳转)。
- 需保留原请求方法(如
- 解决方案:
- 客户端需保持原请求方法重定向。
308 Permanent Redirect
- 含义:永久重定向(禁止方法改变)。
- 常见原因:
- 永久跳转且保留原方法。
- 解决方案:
- 客户端需更新缓存并保留方法。
5. 4xx(客户端错误)
400 Bad Request
- 含义:请求语法错误。
- 常见原因:
- 参数格式错误(如JSON无效)、请求体过大。
- 解决方案:
- 校验请求头/参数(如
Content-Type
是否正确)。
- 校验请求头/参数(如
401 Unauthorized
- 含义:未认证。
- 常见原因:
- 未提供认证信息(如Token缺失)。
- 解决方案:
- 返回
WWW-Authenticate
头提示认证方式(如Bearer
)。
- 返回
403 Forbidden
- 含义:权限不足。
- 常见原因:
- 用户无权访问资源(如私有文件)。
- 解决方案:
- 检查权限配置(如RBAC角色分配)。
404 Not Found
- 含义:资源不存在。
- 常见原因:
- URL错误、资源被删除。
- 解决方案:
- 检查路由配置(如Spring的
@RequestMapping
)。
- 检查路由配置(如Spring的
405 Method Not Allowed
- 含义:请求方法不支持。
- 常见原因:
- 客户端使用
POST
请求访问GET
接口。
- 客户端使用
- 解决方案:
- 返回
Allow
头列出允许的方法(如GET, POST
)。
- 返回
415 Unsupported Media Type
- 含义:请求内容类型不支持。
- 常见原因:
Content-Type
与服务器要求不符(如application/xml
vsJSON
)。
- 解决方案:
- 检查请求头中的
Content-Type
。
- 检查请求头中的
429 Too Many Requests
- 含义:请求过多(防爬虫)。
- 常见原因:
- 客户端频繁请求超出配额。
- 解决方案:
- 返回
Retry-After
头提示重试时间。
- 返回
6. 5xx(服务器错误)
500 Internal Server Error
- 含义:服务器内部错误。
- 常见原因:
- 代码异常(如空指针)、依赖服务超时。
- 解决方案:
- 检查日志(如Spring Boot的
application.log
)。
- 检查日志(如Spring Boot的
502 Bad Gateway
- 含义:代理服务器通信失败。
- 常见原因:
- 反向代理(如Nginx)无法连接后端。
- 解决方案:
- 检查后端服务是否正常(如端口是否开放)。
503 Service Unavailable
- 含义:服务器过载或维护中。
- 常见原因:
- 服务器资源耗尽(如内存不足)。
- 解决方案:
- 增加服务器实例或优化资源使用。
504 Gateway Timeout
- 含义:代理服务器超时。
- 常见原因:
- 后端服务响应超时(如数据库查询缓慢)。
- 解决方案:
- 调整代理超时时间或优化后端性能。
7. 扩展与特殊状态码
422 Unprocessable Entity
- 含义:语义错误(如参数无效但语法正确)。
- 常见原因:
- 参数值不符合业务规则(如年龄为负数)。
423 Locked
- 含义:资源被锁定(如WebDAV)。
- 常见原因:
- 文件被其他会话占用。
511 Network Authentication Required
- 含义:网络层认证失败。
- 常见原因:
- WiFi或代理要求用户登录。
8. 对比表格与最佳实践
状态码对比表
状态码 | 含义 | 客户端行为 | 服务器行为 |
---|---|---|---|
200 | 请求成功 | 处理响应内容 | 返回资源 |
301 | 永久重定向 | 更新缓存,跳转到新URL | 返回新URL |
400 | 请求语法错误 | 修正请求参数 | 拒绝处理并返回错误信息 |
500 | 服务器内部错误 | 重试或联系管理员 | 记录日志并返回通用错误 |
最佳实践
- 错误处理:
- 统一异常处理(如Spring的
@ControllerAdvice
)。
@ControllerAdvice public class GlobalExceptionHandler {@ExceptionHandler(ResourceNotFoundException.class)public ResponseEntity<String> handleNotFound() {return ResponseEntity.status(404).body("Resource not found");} }
- 统一异常处理(如Spring的
- 安全建议:
- 避免暴露敏感信息(如500错误中不显示堆栈)。
- 性能优化:
- 对
200 OK
启用缓存(如Cache-Control: max-age=3600
)。
- 对
技术延伸
学习路径
- 深入HTTP协议:阅读RFC 7231/7540。
- API设计:学习RESTful最佳实践(如《REST API设计指南》)。
- 微服务错误处理:研究分布式追踪(如OpenTelemetry)。
生产案例
- 电商系统:通过
429 Too Many Requests
限制恶意爬虫。 - 云服务:使用
503 Service Unavailable
触发自动扩容。
开放性问题
- 如何在不修改状态码的情况下增强错误响应的可读性?
- 当
500 Internal Server Error
频繁出现时,如何定位根本原因?
代码仓库与基准测试
- GitHub仓库:HTTP-Status-Code-Examples
- JMH基准测试:
@State(Scope.Thread) public class StatusCodeBenchmark {@Benchmarkpublic int test200() {return HttpStatus.OK.value();} }
跨平台兼容性
- JVM环境:直接使用Spring Boot的
ResponseEntity
。 - Node.js:通过
res.status(404).send()
。
相关文章:
HTTP状态码全解析
1. 状态码分类 类别范围含义1xx100-199信息性:请求被接收,需进一步处理(临时响应)2xx200-299成功:请求被正确处理3xx300-399重定向:需后续操作完成请求(如跳转到新URL)4xx400-499客…...
从零实现本地文生图部署(Stable Diffusion)
1. 依赖安装 文件打包下载地址(Stable Diffusion) # git : 用于下载源码 https://git-scm.com/downloads/win # Python 作为基础编译环境 https://www.python.org/downloads/ # Nvidia 驱动,用于编译使用GPU显卡硬件 https://ww…...
手撕算法——链表
算法基础——链表-CSDN博客 一、排队顺序 题⽬来源:洛⾕ 题⽬链接:B3630 排队顺序 - 洛谷 难度系数:★ 1. 题目描述 2. 算法原理 本题相当于告诉了我们每⼀个点的后继,使⽤静态链表的存储⽅式能够很好的还原这个队列。 数组中 [1,…...
css-grid布局
文章目录 1、布局2、网格轨道3、间距Gap4、网格线5、网格别名 当一个 HTML 元素将 display 属性设置为 grid 或 inline-grid 后,它就变成了一个网格容器,这个元素的所有直系子元素将成为网格元素。 1、布局 启用grid布局类似与flex布局,不过g…...
1.企业级AD活动目录核心解析:架构、组件与集成实践
在当今数字化时代,企业级网络环境日益复杂,高效、安全的资源管理和用户认证成为企业 IT 运营的关键。AD(Active Directory)活动目录作为微软 Windows 系列服务器中的重要目录服务,为企业级网络管理提供了强大的解决方案…...
哈尔滨工业大学DeepSeek公开课人工智能:大模型原理 技术与应用-从GPT到DeepSeek|附视频下载方法
导 读INTRODUCTION 今天继续哈尔滨工业大学车万翔教授带来了一场主题为“DeepSeek 技术前沿与应用”的报告。 本报告深入探讨了大语言模型在自然语言处理(NLP)领域的核心地位及其发展历程,从基础概念出发,延伸至语言模型在机器翻…...
ChatGPT vs DeepSeek vs Copilot vs Claude:谁将问鼎AI王座?
李升伟 整理 2025年的人工智能领域创新涌动,ChatGPT、DeepSeek、Copilot和Claude四大模型各领风骚。这些AI系统各具特色,分别专注于编程、创意写作、技术推理和AI伦理等不同领域。本文将深入解析这些AI模型的功能特性及其优势领域。 核心AI模型解析 C…...
【嵌入式Linux】基于ArmLinux的智能垃圾分类系统项目
目录 1. 功能需求2. Python基础2.1 特点2.2 Python基础知识2.3 dict嵌套简单说明 3. C语言调用Python3.1 搭建编译环境3.2 直接调用python语句3.3 调用无参python函数3.4 调用有参python函数 4. 阿里云垃圾识别方案4.1 接入阿里云4.2 C语言调用阿里云Python接口 5. 香橙派使用摄…...
Vue3中router最佳封装落地
文章目录 前言一、拆分路由文件夹?二、main.ts中注册路由总结 前言 router在使用过程中如果我们直接在一个文件的一个数组中配置,最后路由越来越多会导致不易管理,我们可以将一个页面的路由配置在一个数组中最后统一导入,这样就会…...
[Linux] make自动化构建
目录 一.什么是make 二.Makefile结构 2.1 典型结构 2.2 变量 1. 普通变量(User-Defined Variables) 2. 自动变量(Automatic Variables) 3. 预定义变量(Built-in Variables) 4. 函数变量࿰…...
剑指 Offer II 113. 课程顺序
comments: true edit_url: https://github.com/doocs/leetcode/edit/main/lcof2/%E5%89%91%E6%8C%87%20Offer%20II%20113.%20%E8%AF%BE%E7%A8%8B%E9%A1%BA%E5%BA%8F/README.md 剑指 Offer II 113. 课程顺序 题目描述 现在总共有 numCourses 门课需要选,记为 0 到 n…...
蓝桥杯 小球反弹
问题描述 有一个长方形,长为 343720 单位长度,宽为 233333 单位长度。 在其内部左上角顶点有一小球(无视其体积),其初速度方向如图所示,且保持运动速率不变。分解到长宽两个方向上的速率之比为࿱…...
Python 监听模式(Observer Pattern)
1. 监听模式技术方案 监听模式(Observer Pattern)是一种行为设计模式,允许对象(称为“观察者”或“监听者”)在另一个对象(称为“被观察者”或“主题”)的状态发生变化时接收通知。这种模式的核…...
蓝桥备赛(25)算法篇【差分】
一、差分 前缀和和差分的核心思想是预处理 , 可以在暴力枚举的过程中 , 快速给出查询结果 , 从而优化时间复杂度 。 最经典的用空间替换时间的做法。 学完差分之后 , 大家会发现 , 前缀和与差分是一对互逆的运算 二、一…...
Linux|fork命令及其使用的写时拷贝技术
fork复制进程 fork通过以下步骤来复制进程: 分配新的进程控制块:内核为新进程分配一个新的进程控制块(PCB),用于存储进程的相关信息,如进程 ID、状态、寄存器值、内存指针等。复制进程地址空间࿱…...
sgpt 终端使用指南
1. 什么是 sgpt? sgpt 是一个基于 OpenAI API 的命令行工具,允许用户在终端中与 AI 进行交互,支持自然语言对话、代码生成、Shell 命令生成等功能。本文将介绍 sgpt 的安装方法、基本用法、配置文件路径及修改方式,并提供完整的配…...
python如何提取html中所有的图片链接
在Python中,你可以使用BeautifulSoup库来解析HTML内容,并提取其中所有的图片链接(即<img>标签的src属性)。以下是一个示例代码,展示了如何做到这一点: 首先,确保你已经安装了BeautifulSo…...
第十一章 | 智能合约主网部署与验证详解
📚 第十一章 | 智能合约主网部署与验证详解 ——让你的合约真正上线、公开、透明! ✅ 本章导读 前面我们写了各种合约,ERC20、NFT、DAO…… 但只在本地测试或测试网上部署运行,项目还没“上链”! 主网上线部署&#…...
一文读懂Python之json模块(33)
一、json模块介绍 json模块的功能是将序列化的json数据从文件里读取出来或者存入文件。json是一种轻量级的数据交换格式,在大部分语言中,它被理解为数组(array)。 json模块序列化与反序列化的过程分别是 encoding和 decoding。e…...
TextView、AppCompatTextView和MaterialTextView该用哪一个?Android UI 组件发展史与演进对照表
在 Android 开发中,UI 组件一直在不断演进,从最初的原生组件,到 Support Library(AppCompat 兼容库),再到如今的 Material Design 组件。这篇文章将梳理 Android UI 组件的发展历史,并提供详细的…...
三层网络 (服务器1 和 服务器2 在不同网段)
服务器1 和 服务器2 在不同网段,并且通过三层交换机实现通信 1. 网络拓扑 假设网络拓扑如下: 服务器1: mac0:IP 地址 192.168.1.10/24,网关 192.168.1.1 mac1:IP 地址 10.0.1.10/24,网关 10.0…...
23种设计模式-创建型模式-工厂方法
文章目录 简介场景问题1. 直接依赖具体实现2. 违反开闭原则3. 条件分支泛滥4. 代码重复风险 解决根本问题完整类图完整代码说明核心优势代码优化静态配置表动态策略 总结 简介 工厂方法是一种创建型设计模式,它提供了在父类中创建对象的接口,但允许子类…...
el-table单元格编辑,动态增删行,回车/上下左右箭头切换单元格
🤵 作者:coderYYY 🧑 个人简介:前端程序媛,目前主攻web前端,后端辅助,其他技术知识也会偶尔分享🍀欢迎和我一起交流!🚀(评论和私信一般会回!!) 👉 个人专栏推荐:《前端项目教程以及代码》 基于 Element UI 实现表格单元格编辑与键盘导航功能 Element UI …...
基于springboot的新闻推荐系统(045)
摘要 随着信息互联网购物的飞速发展,国内放开了自媒体的政策,一般企业都开始开发属于自己内容分发平台的网站。本文介绍了新闻推荐系统的开发全过程。通过分析企业对于新闻推荐系统的需求,创建了一个计算机管理新闻推荐系统的方案。文章介绍了…...
解决Selenium滑动页面到指定元素,点击失效的问题
White graces:个人主页 🙉专栏推荐:Java入门知识🙉 🐹今日诗词:君失臣兮龙为鱼,权归臣兮鼠变虎🐹 ⛳️点赞 ☀️收藏⭐️关注💬卑微小博主🙏 ⛳️点赞 ☀️收藏⭐️关注Ǵ…...
医学图像白血病分割数据集labelme格式245张5类别
数据集格式:labelme格式(不包含mask文件,仅仅包含jpg图片和对应的json文件) 图片数量(jpg文件个数):245 标注数量(json文件个数):245 标注类别数:5 标注类别名称:["basophil Leukemia","Lymphocyte…...
深度学习Python编程:从入门到工程实践
第一章 Python语言概述与生态体系 1.3 Python在工业界的应用场景 # 示例:使用FastAPI构建RESTful接口 from fastapi import FastAPI from pydantic import BaseModelapp = FastAPI()class Item(BaseModel):name: strprice: float@app.post("/items/") async def cr…...
DHCPv6 Stateless Vs Stateful Vs Stateless Stateful
DHCPv6常见配置模式 在 IPv6 网络中,DHCPv6 的 Stateless(无状态)、Stateful(有状态) 和 Stateless + Stateful(混合模式) 是三种常见的配置模式。它们的主要区别在于客户端如何获取 IPv6 地址和其他网络配置信息(如 DNS 服务器)。 Stateless(无状态)模式 Statele…...
Redis Cluster 详解
Redis Cluster 详解 1. 为什么需要 Redis Cluster? Redis 作为一个高性能的内存数据库,在单机模式下可能会遇到以下问题: 单机容量受限:Redis 是基于内存存储的,单机的内存资源有限,单实例的 Redis 只能…...
Spring(8)——MyBatis入门(2)
一、Mybatis的xml配置文件 Mybatis的开发有两种方式: 注解xml 上一篇博客介绍了用注解的方式操作数据库,这一篇介绍通过xml配置文件的方式操作数据库。 1.1 xml配置文件规则 在Mybatis中使用XML映射文件方式开发,需要符合一定的规范&…...
解析DeepSeek的技术内核:混合专家架构如何重塑AI效能
解析DeepSeek的技术内核:混合专家架构如何重塑AI效能 在当今大型语言模型(LLM)竞争激烈的赛道上,中国AI企业DeepSeek凭借其独特的技术路线脱颖而出。其核心优势之一,便是对混合专家(Mixture of Experts&…...
Android在kts中简单使用AIDL
Android在kts中简单使用AIDL AIDL相信做Android都有所了解,跨进程通信会经常使用,这里就不展开讲解原理跨进程通信的方式了,最近项目换成kts的方式,于是把aidl也换成了统一的方式,其中遇到了很多问题,这里…...
【C++】类和对象(匿名对象)
匿名对象 用 类型(实参) 定义出来的对象叫做匿名对象,相比之前我们定义的 类型 对象名(实参) 定义出来叫有名对象匿名对象生命周期只在当前一行,一般临时定义一个对象当前用一下即可,就可以定义匿名对象。 class A { public:A(int a 0):_a…...
Spring boot 3.4 后 SDK 升级,暨 UI API/MCP 计划
PS 写这篇文章后看到 A Deep Dive Into MCP and the Future of AI Tooling | Andreessen HorowitzWe explore what MCP is, how it changes the way AI interacts with tools, what developers are already building, and the challenges that still need solving. https://a1…...
使用Helm安装、 升级、 回滚Kubernetes应用
前言 在我之前做的项目里,我们对Microk8s微服务的更新是通过自制tar包的方式做的, tar包存储了镜像和YAML文件。 每次升级时,我们需要先删除所有的YAML资源,然后重新创建新的资源。 这种方式存在以下问题: 服务中断:…...
Text-to-SQL将自然语言转换为数据库查询语句
有关Text-To-SQL方法,可以查阅我的另一篇文章,Text-to-SQL方法研究 直接与数据库对话-text2sql Text2sql就是把文本转换为sql语言,这段时间公司有这方面的需求,调研了一下市面上text2sql的方法,比如阿里的Chat2DB,麻…...
gin学习
gin学习笔记,不仅包含了基本的增删查改外,还包括参数传递,上传下载,模版、session与中间件等,方便收藏自习可用 文章目录 获得个请求get打印字符串get请求xmlget请求跳转http方法路由可以通过Context的Param方法来获取…...
【HarmonyOS NEXT】关键资产存储开发案例
在 iOS 开发中 Keychain 是一个非常安全的存储系统,用于保存敏感信息,如密码、证书、密钥等。与文件系统不同,Keychain 提供了更高的安全性,因为它对数据进行了加密,并且只有经过授权的应用程序才能访问存储的数据。那…...
高德终端技术总结:高可用架构如何练成?
前言 高德地图作为国民级应用,特别是出行场景的独特性,要确保在线导航高并发和交通安全级的超稳定性,这对技术团队提出异乎寻常的高要求,无论是终端、云端,还是“终端-云端”之间的连接,都必须实现“高可用…...
STM32八股【3】------RAM和片上FLASH
1、RAM和FLASH构成 1.RAM ┌──────────────────────────┐ │ 栈区 (Stack) │ ← 从RAM顶端向下扩展(存储局部变量、函数调用信息) │--------------------------│ │ 堆区 (Heap) │ ← …...
Apache Doris
Apache Doris介绍 Apache Doris 是一个基于 MPP 架构的高性能、实时的分析型数据库,以极速易用的特点被人们所熟知,仅需亚秒级响应时间即可返回海量数据下的查询结果,不仅可以支持高并发的点查询场景,也能支持高吞吐的复杂分析场…...
Debezium介绍
1.什么是Debezium Debezium 是一个开源的分布式平台,用于捕获数据库的变更事件(CDC,Change Data Capture)。它能够实时捕获数据库中的行级更改,并将这些更改作为事件流发送到消息中间件(如 Apache Kafka&a…...
奇迹科技:蓝牙网关赋能少儿篮球教育的创新融合案例研究
一、引言 本文研究了福建奇迹运动体育科技有限公司(简称‘奇迹科技’)如何利用其创新产品体系和桂花网蓝牙网关M1500,与少儿篮球教育实现深度融合。重点分析其在提升教学效果、保障训练安全、优化个性化教学等方面的实践与成效,为…...
Python散点图(Scatter Plot):高阶分析、散点图矩阵、三维散点图及综合应用
散点图:数据分析的利器 在数据分析领域,散点图是一种直观且强大的可视化工具,广泛应用于揭示变量间的相关性以及识别数据集中的异常值。本文将深入探讨散点图的这两种关键功能,并结合实际案例与Python代码示例,带您全面了解散点图的应用。 一、散点图如何展示变量间的相…...
计算机网络层超全解析:从IP协议到路由算法
🌐 (专业详解生活化类比,逻辑一镜到底) 📖 网络层的核心使命 核心任务:在不同网络间为数据包选择最佳路径,实现端到端通信。 类比:快递公司总部(网络层)根据…...
RoboVQA
RoboVQA:面向机器人技术的多模态长时推理 摘要 我们提出了一种可扩展、自下而上且具有内在多样性的数据收集方案,适用于中长时高级推理任务,其吞吐量比传统的自上而下分步收集方法高2.2倍。通过在3栋办公楼内使用多种实体(机器人、人类、使用抓取工具的人类)执行任意用…...
javascript语法入门
一、变量声明 在JavaScript中,可以使用var、let和const来声明变量。 javascript var name "张三"; let age 20; 二、数据类型 JavaScript中有7种基本数据类型:undefined、null、boolean、string、symbol、number,以及object。…...
前端字段名和后端不一致?解锁 JSON 映射的“隐藏规则” !!!
🚀 前端字段名和后端不一致?解锁 JSON 映射的“隐藏规则” 🌟 嘿,技术冒险家们!👋 今天我们要聊一个开发中常见的“坑”:前端传来的 JSON 参数字段名和后端对象字段名不一致,会发生…...
Java——ArrayList集合
ArrayList:基于动态数组实现,支持随机访问,适合频繁的随机访问操作,但在插入和删除元素时性能较差。 技术层面介绍 所属类库:ArrayList 位于 java.util 包中,它实现了 List 接口,因此具备 Lis…...
基于python+django的图书借阅网站-图书借阅管理系统源码+运行步骤
该系统是基于pythondjango开发的在线图书借阅管理系统。系统适合场景:大学生、课程作业、系统设计、毕业设计。 演示地址 前台地址: http://book.gitapp.cn 后台地址:http://book.gitapp.cn/#/admin 后台管理帐号: 用户名&…...