当前位置: 首页 > news >正文

【网络协议Http】Http中get,post,put,delete区别

Http协议

超文本传输协议(Hypertext Transfer Protocol,HTTP)是一个简单的请求-响应协议,它通常运行在TCP之上。

在这里插入图片描述

【参考】

GET && POST 对比

关于tcp数据包:对于GET方式的请求,浏览器会把http header和data一并发送出去,服务器响应200(返回数据);
而对于POST,浏览器先发送header,服务器响应100 continue,浏览器再发送data,服务器响应200 ok(返回数据)。
实际上get会产生一个tcp数据包,post会产生两个数据,这就会造成响应时间问题,但并不是所有的浏览器都是post发两次包,firefox不是。

GET 为获取数据
  • 请求参数在url上体现,能看到—不安全
  • 相当于数据库中的SELECT操作。

发送 数据 POST && PUT

put和post都是向服务器端发送数据,但put是幂等的,而post是非幂等。

所谓幂等,即多次发送同一个请求时候,产生的结果是一样的就是幂等性原则,这是为了当网络出现延迟等,服务器(客户端)之间发送请求没有收到回应,再重新发一次,实际上另一端已经接收到了第一次的请求,接着有接收第二次同一请求。如果是交易的业务没有幂等就会造成交易两次却只结算一次交易额。

POST 为提交数据
  • 向服务器发送数据。
  • 该请求,相当于INSERT操作。用于新增数据。
    post用于提交表单或创建新资源
  • 安全性。比 GET 更安全。数据都是放在RequestBody
  • 数据量无上限。
PUT 为提交数据
  • 也是向服务器发送消息
  • 该请求像数据库中的UPDATE操作,用来修改数据;
    (多次请求,最新一次会把上一次的请求数据覆盖)
    put用于向服务器上传或更新资源

DELETE

就是删除某行,就像DELETE操作

@GetMapping、@PostMapping、@PutMapping、@DeleteMapping 的区别

RESTFUL风格接口,常用的URL请求方式就包括了GET、POST、PUT、DELETE等

@RequestMaping

@RequestMaping主要是将HTTP请求映射到控制器方法上,用于接收HTTP请求。因此,@GetMapping其实写法就是@RequestMapping(method = RequestMethod.GET)

@GetMapping

  • 用来获取数据;
  • 类似 select
  • 具有幂等性

@PostMapping

  • 用来提交请求数据(表单)
  • 类似 insert
  • 需要考虑接口幂等性问题 ???

@PutMapping

  • 用来修改数据
  • -类似 update
  • 本身就具有幂等性

@DeleteMapping

  • 用来删除数据
  • 类似于数据库中的delete
  • 具有幂等性

示例


// insert
> @PostMapping(value = "/add") 
> public void add(@RequestBody User user) {
> 
>     }
> 
> // delete
> @DeleteMapping(value = "/delete/{id}")
>  public void delete(@PathVariable String id) {
>    
>      }
> 
> // update
> @PutMapping(value = "/update") 
> public void update(@RequestBody User user) {
>   
>     }
> 
> // select
> @GetMapping(value = "/get") 
> public User get(@RequestParam String name)
> {
>  
>      }

相关文章:

【网络协议Http】Http中get,post,put,delete区别

Http协议 超文本传输协议(Hypertext Transfer Protocol,HTTP)是一个简单的请求-响应协议,它通常运行在TCP之上。 【参考】 GET && POST 对比 关于tcp数据包:对于GET方式的请求,浏览器会把http hea…...

软硬中断区别,磁盘块、扇区、页区别与之间的关系

软硬中断: 软中断是执行中断指令产生的,而硬中断是由外设引发的。 硬中断的中断号是由中断控制器提供的,软中断的中断号由指令直接指出,无需使用中断控制器。 硬中断是可屏蔽的,软中断不可屏蔽。 硬中断处理程序要…...

在线思维导图编辑!3个AI思维导图生成软件推荐!

思维导图,一种以创新为驱动的视觉化思考工具,已经渗透到我们日常生活和工作的各个角落。当我们需要整理思绪、规划项目或者梳理信息时,思维导图总能提供极大的帮助。 近些年随着云服务等基础设施的完善,我们可以看到越来越多提供…...

使用 Ubuntu + Docker + Vaultwarden + Tailscale 自建密码管理器

使用 Ubuntu Docker Vaultwarden Tailscale 自建密码管理器 先决条件 一台运行 Ubuntu 系统的服务器。可以是云提供商的 VPS、家庭网络中的树莓派、或者 Windows 电脑上的虚拟机等等 一个 Tailscale 账户。如果还没有 Tailscale 账户,可以通过此链接迅速创建一个…...

YOLOv7添加注意力机制和各种改进模块

YOLOv7添加注意力机制和各种改进模块代码免费下载:完整代码 添加的部分模块代码: ########CBAM class ChannelAttentionModule(nn.Module):def __init__(self, c1, reduction16):super(ChannelAttentionModule, self).__init__()mid_channel c1 // red…...

【OpenGL第一个程序】

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、OpenGL第一个程序 前言 本文介绍了OpenGL入门的第一个程序,有详细的注释,便于大家理解其中的逻辑。 一、OpenGL第一个程序 #inclu…...

GPT-4O神器来袭!自动生成Figma设计稿,移动端开发瞬间加速!

2024年5月29日- 近日,一款基于GPT-4O技术的创新工具成功实现根据产品需求文档(PRD)自动生成Figma设计稿的功能,为移动端应用开发者带来革命性的便捷。据悉,该功能主要针对移动端应用进行优化,并支持使用高质…...

清华大学提出IFT对齐算法,打破SFT与RLHF局限性

监督微调(Supervised Fine-Tuning, SFT)和基于人类反馈的强化学习(Reinforcement Learning from Human Feedback, RLHF)是预训练后提升语言模型能力的两大基础流程,其目标是使模型更贴近人类的偏好和需求。 考虑到监督…...

TS(TypeScript)中Array数组无法调出使用includes方法,显示红色警告

解决方法 打开tsconfig.json文件,添加"lib": ["es7", "dom"]即可。 如下图所示。...

基于Kafka的日志采集

目录 前言 架构图 资源列表 基础环境 关闭防护墙 关闭内核安全机制 修改主机名 添加hosts映射 一、部署elasticsearch 修改limit限制 部署elasticsearch 修改配置文件 启动 二、部署filebeat 部署filebeat 添加配置文件 启动 三、部署kibana 部署kibana 修…...

某烟草企业数字化转型物流信息化咨询项目规划方案(117页PPT)

方案介绍: 烟草企业数字化转型物流信息化咨询项目规划方案将为企业带来多方面的价值,包括提升物流运营效率、降低物流成本、优化供应链管理、增强企业竞争力和促进可持续发展等。这些价值的实现将有助于企业在激烈的市场竞争中保持领先地位并实现可持续…...

失落的方舟 命运方舟台服封号严重 游戏封IP怎么办

步入《失落的方舟》(Lost Ark),这款由Smilegate精心打造的宏大规模在线角色扮演游戏(MMORPG),您将启程前往阿克拉西亚这片饱经沧桑的奇幻大陆,展开一场穿越时空的壮阔探索。在这里,一…...

2.10 mysql设置远程访问权限

2.10 mysql设置远程访问权限 目录1. 管理员运行mysql命令窗口2. 使用 root 用户重新登录 MySQL3. 修改用户权限4. 修改mysql安装目录下的my.ini 目录 说明: Mysql8.0 设置远程访问权限 一、Mysql8.0 设置远程访问权限 1. 管理员运行mysql命令窗口 2. 使用 root 用…...

C# 证件照替换底色与设置背景图---PaddleSegSharp

PaddleSegSharp 是一个基于百度飞桨PaddleSeg项目的人像分割模块而开发的.NET的工具类库。 PaddleSegSharp 中PaddleSeg.dll文件是基于开源项目最新发布版本PaddleSeg PaddleSeg的版本修改而成的C动态库,基于opencv的x64编译而成的。 PaddleSeg是基于飞桨PaddlePa…...

HCIA-HarmonyOS Device Developer 课程大纲

一:OpenHarmony 介绍 - ( 3 课时) - OpenHarmony 简介;OpenHarmony 设计理念;OpenHarmony 设计理念概述; - OpenHarmony 试图解决的问题;应用生态割裂问题;用户数据割裂问题&#…...

洗地机哪个牌子最好用?十大名牌洗地机排行榜

作为一种新兴的智能家居产品,洗地机的市场规模已经突破了百亿大关。如此庞大的市场自然吸引了大量资本的涌入,许多品牌纷纷推出自己的洗地机产品,试图在这个竞争激烈的市场中占据一席之地。然而,面对如此多的品牌和型号&#xff0…...

Unity开发——XLua热更新之Hotfix配置(包含xlua获取与导入)

一、Git上获取xlua 最新的xlua包,下载地址链接:https://github.com/Tencent/xLua 二、Unity添加xlua 解压xlua压缩包后,将xlua里的Assets里的文件直接复制进Unity的Assets文件夹下。 成功导入后,unity工具栏会出现xlua选项。 …...

Qt 基于FFmpeg的视频转换器 - 转GIF动图

Qt 基于FFmpeg的视频转换器 - 转GIF动图 引言一、设计思路二、核心源码三、参考链接 引言 gif格式的动图可以通过连续播放一系列图像或视频片段来展示动态效果,使信息更加生动形象,可以很方便的嵌入到网页或者ppt中。上图展示了视频的前几帧转为gif动图的…...

HTML新春烟花盛宴

目录 写在前面 烟花盛宴 完整代码 修改文字...

第十四届蓝桥杯c++研究生组

A 混乘数字 关键思路是求每个十进制数的数字以及怎么在一个数组中让判断所有的数字次数相等。 求每个十进制的数字 while(n!0){int x n%10;//x获取了n的每一个位数字n/10;}扩展:求二进制的每位数字 (注意:进制转换、1的个数、位运算&#…...

告别Putty和串口助手:这款LVGL开发的LCOM,如何成为我的嵌入式开发调试新宠?

告别Putty和串口助手:这款LVGL开发的LCOM,如何成为我的嵌入式开发调试新宠? 作为一名嵌入式开发者,每天与各种开发板、单片机打交道是家常便饭。调试过程中,串口通信工具就像我们的"第三只手",从…...

PyTorch 2.5 + Jupyter 开发环境搭建:5分钟搞定AI模型训练与调试

PyTorch 2.5 Jupyter 开发环境搭建:5分钟搞定AI模型训练与调试 1. 环境准备与快速部署 PyTorch 2.5作为当前最流行的深度学习框架之一,其开箱即用的特性让AI开发变得前所未有的简单。我们将使用预配置好的PyTorch-CUDA基础镜像,快速搭建完…...

SVN分支管理避坑指南:为什么你的Merge two different trees总会删文件?

SVN分支合并的底层逻辑与实战避坑指南 当你面对SVN分支合并时是否经常遇到文件神秘消失的情况?特别是使用TortoiseSVN的"Merge two different trees"功能时,那些本应保留的文件为何总是不翼而飞?本文将深入解析SVN合并的底层机制&a…...

Pixel Couplet Gen 社区贡献指南:在CSDN分享你的使用心得与创意

Pixel Couplet Gen 社区贡献指南:在CSDN分享你的使用心得与创意 1. 为什么要分享你的使用经验 当你成功部署并体验了Pixel Couplet Gen后,可能会发现一些独特的用法或优化技巧。把这些经验分享出来,不仅能帮助其他开发者少走弯路&#xff0…...

别再只改yaml了!深入理解YOLOv5检测头:从P2到P5,如何根据你的目标大小选择最优组合?

深入解析YOLOv5多尺度检测头:从理论到实践的选择艺术 在计算机视觉领域,目标检测一直是核心任务之一。YOLO系列算法以其高效的检测速度和良好的精度表现,成为工业界和学术界的热门选择。然而,很多开发者在使用YOLOv5时&#xff0c…...

UI-TARS-desktop场景应用:自动生成销售报告与更新库存实战

UI-TARS-desktop场景应用:自动生成销售报告与更新库存实战 1. 场景痛点与解决方案 1.1 传统销售管理的效率瓶颈 在零售和电商行业中,销售数据分析和库存管理是日常运营的核心工作。传统方式通常需要: 手动从多个系统导出销售数据人工整理…...

企业财务系统集成指南:如何用诺诺开放平台API搞定电子发票全流程(从签约到开票)

企业财务系统集成指南:诺诺开放平台电子发票全流程实战 当财务数字化转型成为企业降本增效的刚需,电子发票作为交易闭环的关键环节,其系统集成质量直接影响业务流畅度。本文将带您全景式拆解从商务对接到技术落地的完整链路,避开那…...

ide-eval-resetter:突破JetBrains IDE试用期限制的创新方案——2026开发者必备指南

ide-eval-resetter:突破JetBrains IDE试用期限制的创新方案——2026开发者必备指南 【免费下载链接】ide-eval-resetter 项目地址: https://gitcode.com/gh_mirrors/id/ide-eval-resetter 问题引入:JetBrains IDE试用期限制的痛点分析 作为开发…...

EasyAnimateV5-7b-zh-InP效果对比:不同Sampling Method(Flow/Euler)画质差异

EasyAnimateV5-7b-zh-InP效果对比:不同Sampling Method(Flow/Euler)画质差异 你是不是也遇到过这样的困惑:用同一个图生视频模型,同样的图片和提示词,只是换了个采样方法,出来的视频效果就天差…...

Pixel Couplet Gen实战案例:某AI开发者大会现场扫码生成像素春联纪念品

Pixel Couplet Gen实战案例:某AI开发者大会现场扫码生成像素春联纪念品 1. 项目背景与创意来源 1.1 传统与创新的碰撞 在2024年某AI开发者大会现场,我们推出了一款名为"Pixel Couplet Gen"的互动装置。这款产品将中国传统春节文化与现代AI技…...