在 Java Web 开发中,网络请求主要通过 HTTP 协议实现,常见的请求类型包括 GET、POST、PUT、DELETE 等,以下是常用的请求类型与区别


HTTP 请求类型及区别

请求类型 作用 特点 适用场景
GET 获取资源 参数在 URL 中可见,有长度限制,可被缓存,幂等(多次请求结果相同) 查询数据、页面跳转
POST 提交数据或创建资源 参数在请求体中,无长度限制,不可缓存,非幂等 表单提交、文件上传、登录
PUT 更新资源(全量替换) 参数在请求体中,幂等 更新整个资源
DELETE 删除资源 幂等,无请求体 删除指定资源
PATCH 更新资源(部分修改) 参数在请求体中,非幂等 局部更新资源

关键区别

  1. 安全性:GET 是安全的(仅查询),其他方法可能修改数据。
  2. 幂等性:GET、PUT、DELETE 是幂等的,POST、PATCH 不是。
  3. 参数位置:GET 参数在 URL,其他方法在请求体。
  4. 缓存:GET 可被缓存,其他方法通常不缓存。

这里涉及到幂等的盖帘,怎么是幂等呢?

幂等是一个数学与计算机学概念,常见于抽象代数中。

在编程中一个幂等操作的特点是其任意多次执行所产生的影响均与一次执行的影响相同。幂等函数,或幂等方法,是指可以使用相同参数重复执行,并能获得相同结果的函数。这些函数不会影响系统状态,也不用担心重复执行会对系统造成改变。

这里举一个简单的例子:

想象你家的电灯开关

  • 非幂等:如果每次按开关都让灯的状态翻转(开→关→开→关…),按多次的结果不同,这就是不幂等
  • 幂等:如果无论按多少次,最终灯的状态都是「开」(比如智能开关固定设置为开),结果相同,这就是幂等