GET 和 POST 的区别
根据技术规格文档,GET 和 POST 最大的区别是语义。
区别一:幂等性 (重复操作不改变结果 )
- 由于 GET 是读,POST 是写,所以 GET 是幂等的,POST 不是幂等的。
- 由于 GET 是读,POST 是写,所以用浏览器打开网页会发送 GET 请求,想要 POST 打开网页要用 form 标签。
- 由于 GET 是读,POST 是写,所以 GET 打开的页面刷新是无害的,POST 打开的页面刷新需要确认。
- 由于 GET 是读,POST 是写,所以 GET 结果会被缓存,POST 结果不会被缓存。
- 由于 GET 是读,POST 是写,所以 GET 打开的页面可被书签收藏,POST 打开的不行(安全考虑)。
区别二:请求参数
- 通常,GET 请求参数放在 url 里,POST 请求数据放在 body(消息体)里。(通常情况如此,主要原因是后端框架可能存在限制,不支持读取get的body)
- GET 比 POST 更不安全,因为参数直接暴露在URL上,所以不能用来传递敏感信息。
- GET 请求参数放在 url 里是有长度限制的(浏览器和服务器实现,不是协议限制),而 POST 放在 body 里没有长度限制(可配置)。
区别三:TCP packet
- GET 产生一个 TCP 数据包;POST 产生两个或以上 TCP 数据包。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构