【HTTP】HTTP协议核心体系:请求方法与状态码全结构化解析(附《思维导图》)

news2026/4/3 12:22:24
文章目录HTTP协议核心体系请求方法与状态码全结构化解析一、核心基础概念1.1 HTTP方法的两大核心属性规范级定义1.2 HTTP状态码分类规则二、HTTP请求方法2.1 标准核心方法RFC 7231 定义2.1.1 只读类方法安全幂等2.1.2 写入类方法资源状态修改2.1.3 控制类方法协议通信管控2.2 方法核心特性速查表2.3 行业最佳实践三、HTTP状态码全分类与核心场景3.1 1xx 信息性状态码临时响应3.2 2xx 成功状态码请求正常处理完成3.3 3xx 重定向状态码需客户端额外操作3.4 4xx 客户端错误状态码请求存在问题3.5 5xx 服务端错误状态码服务端处理失败四、高频易错点与规范红线五、RESTful接口方法与状态码协同规范附思维导图HTTP协议核心体系请求方法与状态码全结构化解析本文基于HTTP/1.1核心规范RFC 7230-7235及扩展规范构建完整的HTTP请求方法、状态码知识体系覆盖核心定义、分类规则、典型场景、规范约束与高频误区。一、核心基础概念1.1 HTTP方法的两大核心属性规范级定义这是区分HTTP方法、规范使用的核心标尺所有方法的设计均围绕这两个属性展开属性RFC规范定义核心意义安全方法方法执行不会修改服务器资源状态仅为只读操作客户端可重复发起无任何业务风险爬虫/缓存可自由访问幂等方法一次与多次重复执行相同请求对服务器资源的副作用完全一致分布式系统、重试场景的核心保障避免重复提交导致的数据异常关键误区纠正幂等性不要求多次请求的响应码完全一致。例如DELETE请求第一次返回204第二次返回404仍符合幂等性——因为多次请求的最终副作用都是「该资源被删除」与单次执行一致。1.2 HTTP状态码分类规则HTTP状态码为3位数字第一位数字定义响应类别后两位为细分编码共分为5大类覆盖请求全生命周期的所有结果分类核心含义响应本质1xx信息性状态码请求已接收正在处理临时响应需等待最终结果2xx成功状态码请求已被正常接收、理解、处理并完成3xx重定向状态码请求需客户端执行额外操作跳转/缓存才能完成4xx客户端错误状态码请求存在语法/语义/权限问题服务端无法/拒绝处理5xx服务端错误状态码服务端处理请求时发生内部错误无法完成合法请求二、HTTP请求方法2.1 标准核心方法RFC 7231 定义2.1.1 只读类方法安全幂等方法核心定义典型使用场景规范约束高频误区GET获取目标资源的完整表示页面加载、数据查询、接口拉取、搜索引擎爬虫安全、幂等仅支持URL传参不应携带请求体用GET执行修改/删除操作用GET传输敏感数据URL参数超限HEAD与GET完全一致但服务端仅返回响应头不返回响应体资源可用性校验、大文件大小预检、接口连通性测试、缓存有效性验证安全、幂等绝对不能返回响应体用于业务数据查询返回响应体导致客户端解析异常2.1.2 写入类方法资源状态修改方法核心定义典型使用场景安全/幂等规范约束核心区分POST让目标资源处理请求负载执行非幂等的写入操作新建资源、表单提交、文件上传、复杂查询参数超GET限制非安全、非幂等重复提交会产生多个资源/多次副作用唯一原生非幂等的标准写入方法用于客户端不指定资源URI的创建PUT全量替换目标资源用请求体的完整内容覆盖已有资源全量更新已有资源、客户端指定URI的资源创建非安全、幂等请求必须携带资源的完整字段多次提交结果完全一致与POST核心区别幂等性与PATCH核心区别全量替换vs增量修改DELETE删除指定的目标资源资源删除、数据下线非安全、幂等多次删除的最终副作用一致资源不存在无需响应体成功推荐返回204资源不存在返回404PATCH增量更新目标资源仅修改请求体指定的字段RFC 5789扩展资源部分字段更新、无需传输完整资源的场景非安全、默认非幂等可自定义实现幂等请求体需描述增量修改规则无需完整资源解决PUT全量更新的带宽浪费问题是RESTful接口的主流更新方案2.1.3 控制类方法协议通信管控方法核心定义典型使用场景安全/幂等规范约束OPTIONS获取目标资源支持的通信选项、允许的请求方法与权限CORS跨域预检请求、服务端支持能力探测安全、幂等响应头需通过Allow字段返回资源支持的所有方法CONNECT与目标服务器建立TCP隧道用于代理通信HTTPS正向/反向代理、VPN隧道、加密流量转发非安全、非幂等仅用于代理场景建立隧道后直接转发双向流量TRACE回显客户端的完整请求链路用于通信诊断代理链路调试、请求篡改检测、网络故障排查安全、幂等服务端需将收到的请求原封不动返回响应体存在XST攻击风险生产环境普遍禁用2.2 方法核心特性速查表方法安全幂等可带请求体推荐响应成功码GET✅✅不推荐200 OKHEAD✅✅❌200 OKPOST❌❌✅201 Created / 200 OKPUT❌✅✅200 OK / 204 No ContentPATCH❌❌默认✅200 OK / 204 No ContentDELETE❌✅不推荐204 No ContentOPTIONS✅✅❌200 OKCONNECT❌❌❌200 OKTRACE✅✅❌200 OK2.3 行业最佳实践严格遵循幂等性规范重试场景如微服务超时重试、前端防重复提交必须使用幂等方法禁止用POST执行更新操作RESTful接口规范资源创建用POST全量更新用PUT增量更新用PATCH查询用GET删除用DELETE禁止方法滥用不得用GET执行写入操作不得用POST统一处理所有请求避免破坏HTTP语义安全约束敏感数据绝对不能通过GET的URL参数传输必须用POST/PUT的请求体加密传输三、HTTP状态码全分类与核心场景3.1 1xx 信息性状态码临时响应仅HTTP/1.1及以上版本支持为中间临时响应无响应体客户端收到后需继续等待最终响应。状态码名称核心定义典型使用场景100Continue服务端已接收请求头允许客户端继续发送请求体大文件/大请求体上传预检客户端携带Expect: 100-continue头服务端校验通过后返回100避免客户端浪费带宽传输被拒绝的大文件101Switching Protocols服务端同意客户端的协议切换请求WebSocket握手客户端携带Upgrade: websocket头服务端返回101后续切换为WebSocket协议通信103Early Hints服务端提前返回响应头告知客户端可预加载资源前端性能优化服务端处理HTML的同时先通过Link头返回需要预加载的CSS/JS资源让浏览器提前加载减少白屏时间102Processing服务端已接收请求正在处理中暂无结果WebDAV场景、耗时异步任务避免客户端因长时间无响应触发超时3.2 2xx 成功状态码请求正常处理完成表示请求已被服务端完整处理是唯一代表请求成功的分类。状态码名称核心定义典型使用场景200OK请求成功服务端已正常处理并返回结果GET查询成功、POST处理成功返回业务数据是最通用的成功状态码201Created资源创建成功POST/PUT创建资源成功如用户注册、文件上传响应头必须通过Location字段指向新资源的URI响应体可携带创建的资源信息202Accepted请求已接收但尚未处理完成异步任务场景批量数据处理、报表生成、视频转码服务端接收任务后返回202附带任务ID客户端后续轮询任务进度204No Content请求成功但无响应体PUT全量更新、DELETE删除、PATCH增量更新成功无需返回业务数据前端无需处理响应体仅需识别状态码206Partial Content部分内容请求成功断点续传、分片下载、视频流媒体拖动播放客户端携带Range头请求指定字节范围服务端返回对应内容响应头必须携带Content-Range说明返回范围与总大小3.3 3xx 重定向状态码需客户端额外操作核心分为3类永久重定向、临时重定向、缓存重定向核心区分点为「是否允许修改请求方法」「是否永久生效」「缓存策略」。状态码名称核心定义典型使用场景关键约束301Moved Permanently资源永久移动到新URI网站域名更换、页面路径永久变更、SEO权重迁移永久重定向浏览器会长期缓存允许客户端将POST请求改为GET308Permanent Redirect资源永久移动到新URI需保持原请求方法的永久重定向场景永久重定向与301核心区别绝对不允许修改请求方法原POST请求必须仍以POST方式访问新地址302Found资源临时移动到新URI临时页面跳转、登录后跳回原页面临时重定向浏览器不缓存允许客户端将POST请求改为GET浏览器普遍实现303See Other请求已处理需用GET方法获取新资源POST表单提交成功后跳转到结果页面避免用户刷新页面重复提交表单临时重定向无论原请求是什么方法必须用GET方式访问重定向地址307Temporary Redirect资源临时移动到新URI需保持原请求方法的临时重定向场景如表单POST提交跳转临时重定向与302核心区别绝对不允许修改请求方法原POST请求必须仍以POST方式访问新地址304Not Modified资源未修改无需重新传输HTTP协商缓存客户端携带If-Modified-Since/If-None-Match头服务端验证资源未更新返回304客户端直接使用本地缓存无响应体必须配合Cache-Control/ETag/Last-Modified缓存头使用是前端性能优化的核心机制3.4 4xx 客户端错误状态码请求存在问题表示请求本身存在错误服务端无法或拒绝处理责任在客户端重复提交相同请求仍会失败。状态码名称核心定义典型使用场景关键区分400Bad Request请求语法错误、参数无效服务端无法理解请求体JSON格式错误、必填参数缺失、参数类型不匹配、URL编码错误通用客户端语法错误针对请求格式本身401Unauthorized请求需要用户身份认证未认证或认证失效未登录访问需要登录的接口、Token过期/无效核心是「未认证」响应头必须携带WWW-Authenticate字段说明认证方式与403的核心区别用户身份未被服务端识别403Forbidden服务端已识别用户身份但拒绝执行请求普通用户访问管理员接口、IP被封禁、CSRF令牌无效、资源访问权限不足核心是「已认证但无权限」服务端明确拒绝提供服务重复提交无效404Not Found请求的资源不存在URL输入错误、资源已删除、接口路径写错、路由未配置最通用的资源不存在错误不说明资源是临时还是永久消失405Method Not Allowed请求方法不被目标资源支持资源仅支持GET请求客户端使用了POST/PUT方法响应头必须通过Allow字段返回该资源支持的所有请求方法409Conflict请求与资源的当前状态存在冲突并发修改资源、注册时手机号已存在、唯一约束重复、资源版本冲突需客户端解决冲突后重新提交请求针对业务逻辑层面的冲突410Gone资源已永久删除不会再恢复资源被永久下线、旧版本接口永久停用比404更明确搜索引擎会删除该资源的索引413Payload Too Large请求体大小超过服务端限制上传文件超过服务端最大大小限制、POST请求体过大服务端可携带Retry-After头告知客户端重试时间415Unsupported Media Type请求的媒体类型不被服务端支持请求体Content-Type为application/xml但服务端仅接受application/json针对请求体的格式类型而非语法错误422Unprocessable Entity请求格式正确但语义无法处理参数格式符合要求但业务校验失败密码长度不足、手机号格式正确但已被注册、字段值超出业务范围RESTful接口主流业务错误码与400核心区别400是语法错误422是语义/业务逻辑错误429Too Many Requests客户端请求次数过多触发服务端限流接口防刷、爬虫拦截、API网关限流、单用户请求频率超限响应头可携带Retry-After头、限流规则说明是微服务高可用防护的核心状态码3.5 5xx 服务端错误状态码服务端处理失败表示服务端在处理合法请求时发生了内部错误责任在服务端请求本身无问题后续重试可能成功。状态码名称核心定义典型使用场景关键区分500Internal Server Error服务端发生未知内部错误无法完成请求代码运行异常空指针、数组越界、数据库执行报错、服务配置错误、依赖服务崩溃最通用的服务端错误码用于未分类的内部异常501Not Implemented服务端不支持请求的方法无法完成处理客户端使用了服务端未实现的扩展方法、未兼容的HTTP协议特性与405核心区别405是方法存在但不被该资源支持501是服务端根本不支持该方法502Bad Gateway网关/代理服务器收到上游服务的无效响应Nginx反向代理场景上游Tomcat/Node服务崩溃、上游服务重启、上游服务返回了无法解析的无效响应核心是「上游服务不可达/返回无效响应」网关能正常工作503Service Unavailable服务端暂时不可用服务停机维护、服务过载熔断、服务器资源耗尽、流量峰值限流是临时不可用响应头可携带Retry-After头告知恢复时间监控系统可基于此做告警504Gateway Timeout网关/代理服务器请求上游服务超时Nginx反向代理场景上游服务处理耗时过长、SQL慢查询、依赖服务调用超时超过了网关的超时阈值与502核心区别502是上游服务不可达504是上游服务能连通但响应超时505HTTP Version Not Supported服务端不支持客户端使用的HTTP协议版本客户端使用HTTP/3发起请求但服务端仅支持HTTP/1.1四、高频易错点与规范红线幂等性红线重试场景、支付/订单等核心业务必须使用幂等方法禁止用POST执行更新操作避免重复扣款、重复下单状态码语义滥用禁止用200统一返回所有结果包括业务错误否则会破坏HTTP语义导致监控、CDN、网关无法正确识别请求结果核心状态码混淆401未登录/未认证403已登录但无权限不可混用301/302允许修改请求方法308/307禁止修改表单POST跳转必须用307/308避免表单数据丢失502上游服务挂了504上游服务响应超时不可混用重定向缓存坑301是永久重定向会被浏览器长期缓存临时跳转绝对不能使用301否则会导致用户无法访问原地址方法语义滥用禁止用GET执行删除/修改操作禁止用POST统一处理所有请求避免破坏HTTP的缓存、安全、幂等性设计五、RESTful接口方法与状态码协同规范请求方法业务场景成功响应码常见错误响应码GET查询单个/列表资源200 OK404资源不存在、401未登录、403无权限POST创建新资源201 Created400参数格式错误、422业务校验失败、409资源冲突、401/403PUT全量更新资源200 OK / 204 No Content404资源不存在、400/422参数错误、401/403PATCH增量更新资源200 OK / 204 No Content404资源不存在、400/422参数错误、401/403DELETE删除资源204 No Content404资源不存在、403无权限、401未登录附思维导图

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2474993.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SpringBoot-17-MyBatis动态SQL标签之常用标签

文章目录 1 代码1.1 实体User.java1.2 接口UserMapper.java1.3 映射UserMapper.xml1.3.1 标签if1.3.2 标签if和where1.3.3 标签choose和when和otherwise1.4 UserController.java2 常用动态SQL标签2.1 标签set2.1.1 UserMapper.java2.1.2 UserMapper.xml2.1.3 UserController.ja…

wordpress后台更新后 前端没变化的解决方法

使用siteground主机的wordpress网站,会出现更新了网站内容和修改了php模板文件、js文件、css文件、图片文件后,网站没有变化的情况。 不熟悉siteground主机的新手,遇到这个问题,就很抓狂,明明是哪都没操作错误&#x…

网络编程(Modbus进阶)

思维导图 Modbus RTU(先学一点理论) 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议,由 Modicon 公司(现施耐德电气)于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…

UE5 学习系列(二)用户操作界面及介绍

这篇博客是 UE5 学习系列博客的第二篇,在第一篇的基础上展开这篇内容。博客参考的 B 站视频资料和第一篇的链接如下: 【Note】:如果你已经完成安装等操作,可以只执行第一篇博客中 2. 新建一个空白游戏项目 章节操作,重…

IDEA运行Tomcat出现乱码问题解决汇总

最近正值期末周,有很多同学在写期末Java web作业时,运行tomcat出现乱码问题,经过多次解决与研究,我做了如下整理: 原因: IDEA本身编码与tomcat的编码与Windows编码不同导致,Windows 系统控制台…

利用最小二乘法找圆心和半径

#include <iostream> #include <vector> #include <cmath> #include <Eigen/Dense> // 需安装Eigen库用于矩阵运算 // 定义点结构 struct Point { double x, y; Point(double x_, double y_) : x(x_), y(y_) {} }; // 最小二乘法求圆心和半径 …

使用docker在3台服务器上搭建基于redis 6.x的一主两从三台均是哨兵模式

一、环境及版本说明 如果服务器已经安装了docker,则忽略此步骤,如果没有安装,则可以按照一下方式安装: 1. 在线安装(有互联网环境): 请看我这篇文章 传送阵>> 点我查看 2. 离线安装(内网环境):请看我这篇文章 传送阵>> 点我查看 说明&#xff1a;假设每台服务器已…

XML Group端口详解

在XML数据映射过程中&#xff0c;经常需要对数据进行分组聚合操作。例如&#xff0c;当处理包含多个物料明细的XML文件时&#xff0c;可能需要将相同物料号的明细归为一组&#xff0c;或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码&#xff0c;增加了开…

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器的上位机配置操作说明

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器专为工业环境精心打造&#xff0c;完美适配AGV和无人叉车。同时&#xff0c;集成以太网与语音合成技术&#xff0c;为各类高级系统&#xff08;如MES、调度系统、库位管理、立库等&#xff09;提供高效便捷的语音交互体验。 L…

(LeetCode 每日一题) 3442. 奇偶频次间的最大差值 I (哈希、字符串)

题目&#xff1a;3442. 奇偶频次间的最大差值 I 思路 &#xff1a;哈希&#xff0c;时间复杂度0(n)。 用哈希表来记录每个字符串中字符的分布情况&#xff0c;哈希表这里用数组即可实现。 C版本&#xff1a; class Solution { public:int maxDifference(string s) {int a[26]…

【大模型RAG】拍照搜题技术架构速览:三层管道、两级检索、兜底大模型

摘要 拍照搜题系统采用“三层管道&#xff08;多模态 OCR → 语义检索 → 答案渲染&#xff09;、两级检索&#xff08;倒排 BM25 向量 HNSW&#xff09;并以大语言模型兜底”的整体框架&#xff1a; 多模态 OCR 层 将题目图片经过超分、去噪、倾斜校正后&#xff0c;分别用…

【Axure高保真原型】引导弹窗

今天和大家中分享引导弹窗的原型模板&#xff0c;载入页面后&#xff0c;会显示引导弹窗&#xff0c;适用于引导用户使用页面&#xff0c;点击完成后&#xff0c;会显示下一个引导弹窗&#xff0c;直至最后一个引导弹窗完成后进入首页。具体效果可以点击下方视频观看或打开下方…

接口测试中缓存处理策略

在接口测试中&#xff0c;缓存处理策略是一个关键环节&#xff0c;直接影响测试结果的准确性和可靠性。合理的缓存处理策略能够确保测试环境的一致性&#xff0c;避免因缓存数据导致的测试偏差。以下是接口测试中常见的缓存处理策略及其详细说明&#xff1a; 一、缓存处理的核…

龙虎榜——20250610

上证指数放量收阴线&#xff0c;个股多数下跌&#xff0c;盘中受消息影响大幅波动。 深证指数放量收阴线形成顶分型&#xff0c;指数短线有调整的需求&#xff0c;大概需要一两天。 2025年6月10日龙虎榜行业方向分析 1. 金融科技 代表标的&#xff1a;御银股份、雄帝科技 驱动…

观成科技:隐蔽隧道工具Ligolo-ng加密流量分析

1.工具介绍 Ligolo-ng是一款由go编写的高效隧道工具&#xff0c;该工具基于TUN接口实现其功能&#xff0c;利用反向TCP/TLS连接建立一条隐蔽的通信信道&#xff0c;支持使用Let’s Encrypt自动生成证书。Ligolo-ng的通信隐蔽性体现在其支持多种连接方式&#xff0c;适应复杂网…

铭豹扩展坞 USB转网口 突然无法识别解决方法

当 USB 转网口扩展坞在一台笔记本上无法识别,但在其他电脑上正常工作时,问题通常出在笔记本自身或其与扩展坞的兼容性上。以下是系统化的定位思路和排查步骤,帮助你快速找到故障原因: 背景: 一个M-pard(铭豹)扩展坞的网卡突然无法识别了,扩展出来的三个USB接口正常。…

未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?

编辑&#xff1a;陈萍萍的公主一点人工一点智能 未来机器人的大脑&#xff1a;如何用神经网络模拟器实现更智能的决策&#xff1f;RWM通过双自回归机制有效解决了复合误差、部分可观测性和随机动力学等关键挑战&#xff0c;在不依赖领域特定归纳偏见的条件下实现了卓越的预测准…

Linux应用开发之网络套接字编程(实例篇)

服务端与客户端单连接 服务端代码 #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> #include <pthread.h> …

华为云AI开发平台ModelArts

华为云ModelArts&#xff1a;重塑AI开发流程的“智能引擎”与“创新加速器”&#xff01; 在人工智能浪潮席卷全球的2025年&#xff0c;企业拥抱AI的意愿空前高涨&#xff0c;但技术门槛高、流程复杂、资源投入巨大的现实&#xff0c;却让许多创新构想止步于实验室。数据科学家…

深度学习在微纳光子学中的应用

深度学习在微纳光子学中的主要应用方向 深度学习与微纳光子学的结合主要集中在以下几个方向&#xff1a; 逆向设计 通过神经网络快速预测微纳结构的光学响应&#xff0c;替代传统耗时的数值模拟方法。例如设计超表面、光子晶体等结构。 特征提取与优化 从复杂的光学数据中自…