一、 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用于登录校验,或者传递客户端版本号、设备信息等。