HTTP GET 和 POST

HTTP 中 GET 与 POST 的语义差异、常见使用方式与面试高频误区。

#resource / http #type / concept #status / growing

[!info] related notes

HTTP GET 和 POST

GETPOST 是最常见的 HTTP 请求方法,但它们的区别不只是“一个放 URL,一个放 Body”。

一句话定义

  • GET 更强调获取资源
  • POST 更强调提交数据并让服务端处理

语义层面的差异

GET

  • 通常用于读取数据
  • 更强调幂等和安全语义
  • 适合查询、获取详情、拉取列表

POST

  • 通常用于提交数据
  • 常见于创建、登录、上传、触发处理逻辑
  • 不要求幂等

常见技术层差异

  • GET 参数常出现在 URL 查询串中
  • POST 数据常放在请求体中
  • GET 更容易被浏览器历史、书签、日志直接记录
  • POST 并不天然更安全,是否安全仍取决于 HTTPS、鉴权和后端校验

最容易误解的点

  • POST 不是“加密请求”
  • GET 不是绝对不能带请求体,只是浏览器和常见实践里几乎不会这么用
  • 面试里更重要的是区分“语义”和“实现习惯”

最短记忆方式

GET 偏获取,POST 偏提交;先讲语义,再讲实现习惯。

面试要点

来自 get-vs-post-interview-question 的面试视角整理。

一句话回答

GET 更偏获取资源,POST 更偏提交数据并触发服务端处理;它们常见的参数位置、缓存行为和使用场景也会不同。

最稳的回答主线

  • GET 常用于查询和读取
  • POST 常用于提交和创建
  • GET 参数常见于 URL,POST 数据常见于请求体
  • POST 不代表天然更安全,安全仍依赖 HTTPS 和服务端校验

面试里一句加分点

如果要说区别,最好分成“语义区别”和“浏览器/工程实践里的常见表现”两层来答。

最短记忆方式

先讲语义:GET 取,POST 提。

创建于 2026/3/19 更新于 2026/5/27