【前端】HTTP请求方式:GET、POST 与其他请求方法详解

【前端】HTTP请求方式:GET、POST 与其他请求方法详解


文章目录


前言

在前后端分离开发中,最常见的问题之一就是:

  • GET 和 POST 有什么区别?
  • PUT、DELETE、PATCH 是干什么的?
  • 为什么有的接口用 POST 不能用 GET?
  • 为什么有时候 GET 能成功,POST 却报错?

本文系统整理 HTTP 请求方式的区别、原理与使用场景,结合 Vue + Axios 实际开发说明。


定义概念 + 缩写

一、HTTP 是什么?

HTTP(HyperText Transfer Protocol)

超文本传输协议,是浏览器与服务器之间通信的规则。


二、常见请求方式

方法作用是否修改数据
GET获取数据
POST提交数据
PUT更新数据(整体替换)
PATCH局部更新
DELETE删除数据
HEAD只获取响应头
OPTIONS查询支持的请求方式

性质


一、GET 请求

特点

  • 用于获取数据
  • 参数放在 URL 中
  • 可被缓存
  • 幂等(多次请求结果相同)

示例

axios.get('/api/user/list',{params:{page:1,pageSize:10}})

生成的请求:

GET /api/user/list?page=1&pageSize=10 

适用场景

  • 查询列表
  • 查询详情
  • 查询分页数据

二、POST 请求

特点

  • 用于提交数据
  • 数据放在请求体(body)
  • 不会被浏览器缓存
  • 常用于创建资源

示例

axios.post('/api/user/login',{username:'admin',password:'123456'})

数据不会出现在 URL 中。


适用场景

  • 登录
  • 表单提交
  • 创建资源
  • 复杂查询条件

三、PUT 请求

特点

  • 用于更新资源
  • 通常是“整体替换”
  • 幂等

示例

axios.put('/api/user',{id:1,name:'张三',phone:'123456'})

四、PATCH 请求

特点

  • 局部更新
  • 只修改某个字段
axios.patch('/api/user/1',{phone:'999999'})

五、DELETE 请求

特点

  • 删除资源
  • 一般通过 id 删除
axios.delete('/api/user',{params:{id:1}})

六、GET 与 POST 核心区别总结

对比项GETPOST
参数位置URLBody
安全性较低较高
数据长度有限制基本无限制
是否缓存
是否幂等
用途查询提交

使用步骤


一、在 Axios 中的标准写法

统一写法(推荐)

axios({method:'post',url:'/api/user/login',data:{username:'admin',password:'123456'}})

二、什么时候用 GET?

✔ 查询
✔ 不修改服务器数据
✔ 参数简单

例如:

GET/admin/category/page?page=1&pageSize=10

三、什么时候用 POST?

✔ 登录
✔ 提交表单
✔ 创建数据
✔ 查询条件复杂

例如:

POST/admin/employee/login 

四、为什么不能乱用 GET?

如果用 GET 做登录:

GET /login?username=admin&password=123456 

密码会暴露在浏览器地址栏:

  • 不安全
  • 会被浏览器记录
  • 会被代理服务器记录

所以登录必须用 POST。


五、RESTful 设计规范建议

操作方法
查询列表GET
查询单个GET
新增POST
修改PUT
局部修改PATCH
删除DELETE

总结

  1. GET 用于查询,不修改数据
  2. POST 用于提交,修改服务器数据
  3. PUT 是整体更新
  4. PATCH 是局部更新
  5. DELETE 是删除
  6. GET 参数在 URL,POST 参数在 body
  7. 登录、密码、敏感数据一定用 POST

一句话总结:

GET 是“看”,POST 是“改”

参考文献

[1] HTTP/1.1 协议规范
[2] Axios 官方文档

在这里插入图片描述


在这里插入图片描述

Read more

高云FPGA – 远程升级原理

目录 1.1 简介 1.2 高云fpga升级原理 1.3 比特流加载测试 1.4 多bit流启动功能实现远程升级 1.5 逻辑SPI读写flash 1.1 简介 在嵌入式设备远程维护的背景下,实现FPGA固件的安全、可靠升级成为关键需求。在近期项目中,我们成功实施了高云FPGA的远程升级方案。本文旨在梳理和分享其核心的升级原理,希望能为有类似需求的开发者提供一份实用的参考。 本文章主要介绍以下三方面内容,高云fpga升级原理,比特流加载测试,逻辑SPI读写flash。 1.2 高云fpga升级原理 上图是高云fpga升级流程示意图。 上图展示了高云FPGA的远程升级流程。该方案支持多比特流启动,系统可从两个用户比特流(Multiboot Bitstream 1 和 2)中选择一个运行。其核心优势在于安全冗余机制:当任一用户比特流加载或运行失败时,FPGA将自动回退至绝对可靠的“黄金比特流”,确保设备始终能恢复至可工作的基础状态。 1.3

【花雕学编程】Arduino BLDC 之使用6.5寸轮毂电机的智能动态跟随机器人底盘

【花雕学编程】Arduino BLDC 之使用6.5寸轮毂电机的智能动态跟随机器人底盘

基于Arduino与6.5寸轮毂电机的智能动态跟随机器人底盘,是一种将一体化高扭矩动力单元与实时感知决策系统深度融合的移动平台方案。该方案利用轮毂电机“轮内驱动”的紧凑特性,结合Arduino(或ESP32等兼容主控)的灵活控制能力,旨在实现对人、车或特定目标的平滑、抗扰、低延迟的伴随运动。 一、 主要特点 一体化高扭矩动力架构 直驱/准直驱结构:6.5寸轮毂电机将BLDC电机、行星减速器(常见速比1:10~1:30)、轮毂及轴承高度集成。省去了皮带、链条等中间传动环节,传动效率高(>85%),结构紧凑,底盘离地间隙低,重心稳。 大扭矩低速特性:得益于内置减速,轮毂电机在低转速下可输出极大扭矩(峰值可达8~25 N·m),能轻松驱动30~80kg级底盘,具备良好的爬坡(<5°)和越障(过坎)能力,且低速运行平稳无顿挫。

如何用腾讯云轻量应用服务器内置OpenClaw应用搭建OpenClaw并接入QQ、飞书机器人,下载skill,开启对话

如何用腾讯云轻量应用服务器内置OpenClaw应用搭建OpenClaw并接入QQ、飞书机器人,下载skill,开启对话

诸神缄默不语-个人技术博文与视频目录 如需OpenClaw下载安装、配置、部署服务可以联系:https://my.feishu.cn/share/base/form/shrcnqjFuoNiBPXjADvRhiUcB1B 我发现腾讯云买服务器可以用QQ钱包,这不得狠狠把我多年来抢的红包狠狠利用一下。 OpenClaw我之前玩了几天,现在把gateway关了,因为我感觉第一是感觉AI对于一些细微的执行逻辑还是绕不明白,而且API太慢了等得我着急,慢得我都不知道它是死了还是只是慢,不如我直接一个古法编程下去开发一个自己的工具。我本来是想拿OpenClaw当时间管理助手的,但是研究了一番感觉它作为整个人完整的时间/项目/文件系统/财务/生活管理助手的潜力还是很大的。但是,也就仅止于潜力了,跟OpenClaw绕记账怎么记实在是把我绕火大了……第二,正如网上一直宣传的那样,这玩意太耗token了,我的混元和Qwen免费额度几乎都秒爆,GLM也给我一下子烧了一大笔。我觉得这不是我的消费水平该玩的东西……主要我也确实没有什么用OpenClaw赚大钱的好idea。 但是我仍然觉得OpenClaw

Submodular function次模函数 概念——AI学习

Submodular function次模函数 概念——AI学习

论文名称:Submodularity In Machine Learning and Artificial Intelligence 一、综述论文 这篇文章是一篇 综述论文(survey)。 核心目标是: 介绍 Submodular functions(次模函数) 以及它们在 机器学习与人工智能中的应用。 作者想说明一个非常重要的观点: 很多机器学习问题其实是“离散优化问题”。 例如: * Feature Selection:属于数据预处理问题,旨在从原始特征中筛选出最相关、最有信息量的子集,以降低维度、提升模型性能与可解释性。 * Dataset Subset Selection:属于数据采样或核心集选择问题,旨在从大规模数据中选取一个具有代表性的子集,以降低计算和存储成本,同时保持模型性能。 * Active Learning:属于机器学习训练策略问题,通过让模型主动选择最有价值的数据进行标注,以最少的标注成本最大化模型性能。 * Clustering:属于无监督学习问题,旨在根据数据的内在相似性,将未标记的数据自动分组为不同的类别或簇。 * Data