前后端交互基础:HTTP 四大请求与常见传参方式

一、 HTTP 的四种核心请求

GET(获取数据)

  • 作用:向服务器请求获取指定的资源。
  • 对应操作:查询(Read)。
  • 苍穹外卖示例:查询员工列表、获取菜品详情。

POST(提交/新增数据)

  • 作用:向服务器提交数据,通常用于创建一个新的资源。
  • 对应操作:新增(Create)。
  • 苍穹外卖示例:新增员工、新增菜品、用户登录(提交账号密码)。

PUT(更新数据)

  • 作用:向服务器提交数据,用于整体替换或更新一个已存在的资源。
  • 对应操作:修改(Update)。
  • 苍穹外卖示例:修改员工信息、修改菜品价格。

DELETE(删除数据)

  • 作用:请求服务器删除指定的资源。
  • 对应操作:删除(Delete)。
  • 苍穹外卖示例:删除某个员工、下架某道菜品。

(注:除了这四种,还有 PATCH(局部更新)、HEAD(只获取响应头)、OPTIONS(查询支持的方法)等,但在日常业务开发中用得相对较少。)

在 Spring MVC 中,区分请求方式非常简单,完全依赖我们之前聊过的注解:

  • 看到@GetMapping,就知道这是给前端查询用的。
  • 看到@PostMapping,就知道这是给前端新增用的。
  • 看到@PutMapping,就知道这是给前端修改用的。
  • 看到@DeleteMapping,就知道这是给前端删除用的。

二、常见参数传递格式

Query 类型(查询字符串)

  • 长什么样:它直接拼接在 URL 网址的后面,以?开头,多个参数之间用&连接。
    • 例子/admin/employee?page=1&pageSize=10&name=张三
  • 数据格式:纯文本,只能传递简单的键值对(Key-Value)。
  • 对应后端注解:在 Spring MVC 中,通常用@RequestParam来接收。
  • 适用场景
    • 传递少量的、简单的参数。
    • GET 请求的标配:比如分页查询、根据 ID 获取详情、条件搜索等。
  • 缺点:URL 长度有限制,不能传递复杂的嵌套对象,且数据直接暴露在网址里,不安全。

JSON 类型

  • 长什么样:它不放在网址后面,而是藏在请求体(Request Body)里面。它长得像 Java 的对象,用大括号{}包裹。
    • 例子{"name": "张三", "phone": "13800138000", "age": 25}
  • 数据格式:结构化的数据,可以嵌套数组和对象,能表达非常复杂的数据结构。
  • 对应后端注解:在 Spring MVC 中,必须用@RequestBody来接收,Spring 会自动把它反序列化成 Java 对象(如 DTO)。
  • 适用场景
    • 传递大量的、复杂的数据。
    • POST / PUT 请求的标配:比如新增员工、修改菜品信息、用户登录提交账号密码等。
  • 优点:没有长度限制,数据结构清晰,前后端对接极其方便。


在苍穹外卖的开发中:
“查”数据(GET),参数少,用 Query(拼接在网址后面);
“增/改”数据(POST/PUT),参数多且复杂,用 JSON(放在请求体里)。

Header 参数(请求头参数)

  • 长什么样:放在 HTTP 请求的头部(Header)中,比如Authorization: Bearer eyJhbGciOi...
  • 后端接收注解@RequestHeader
  • 适用场景:用于传递与业务数据无关的“元数据”。在苍穹外卖中,最典型的就是传递 JWT Token用于登录校验,或者传递客户端版本号、设备信息等。