【网络协议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
  • 具有幂等性

示例

java 复制代码
// 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)
> {
>  
>      }
相关推荐
小席是个热心肠8 分钟前
AI相关的自我学习
java·人工智能·学习
記億揺晃着的那天2 小时前
NAS 内网域名访问为什么需要浏览器授权
网络·nginx·js·nas
chunmiao30322 小时前
DeepSeek V4-Pro 正式版上线,API 8月17日起分时调价
网络·安全
数智化管理手记3 小时前
海量数据如何沉淀有效数据资产?数据标准化治理方案如何搭建?
java·大数据·人工智能
cfm_29143 小时前
SpringAI + Ollama 本地大模型
java·开发语言·人工智能·语言模型
hz567893 小时前
视频会议终端对接详解:协议兼容、系统集成与常见问题
安全·实时音视频·信息与通信
鲸采云SRM采购管理系统4 小时前
采购管理系统哪家好?2026最新测评对比
java·服务器·数据库
IT_陈寒4 小时前
Python的GIL让我多写了500行代码
前端·人工智能·后端
迪康Defender4 小时前
AI 重构终端安全运营:智能分析中枢 AI Insight 模块架构与落地场景深度解析
运维·网络·人工智能·其他·安全·重构·架构
0x535 小时前
Java网络编程(二)
java·服务器·网络