HTTP GET 和 POST
HTTP 中 GET 与 POST 的语义差异、常见使用方式与面试高频误区。
#resource / http
#type / concept
#status / growing
[!info] related notes
- 所属 MOC: http-and-frontend-networking-moc
- 相关概念: http, HTTP 缓存, csrf
- 面试问法: get-vs-post-interview-question
HTTP GET 和 POST
GET 和 POST 是最常见的 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 提。