HTTP中,GET和POST的区别

从 HTTP 规范的语义来看,GET 用于获取资源,不应该改变服务器状态;POST 用于提交数据,通常会产生副作用,比如创建或更新资源。

不过在实际应用中,因为浏览器和服务器的实现,两者有一些明显的差异:

1)参数传递方式不同:GET 把参数拼在 URL 上,长度受浏览器和服务器限制,一般在 2KB 左右。POST 把参数放在请求体里,理论上没有大小限制,更适合传大块数据。当然 POST 也能在 URL 上带参数,只是不常见。

2)安全性有区别:GET 的参数直接暴露在 URL 里,会被浏览器历史记录、服务器日志、代理缓存记下来,不适合传密码这类敏感信息。POST 把数据藏在请求体里,看起来安全一点,但本质上还是明文,真要安全得靠 HTTPS。

3)幂等性不同:按规范 GET 是幂等的,同一个请求发 10 遍结果都一样;POST 不是幂等的,发 10 遍可能创建 10 条数据。但实际开发中,有人拿 GET 搞提交、拿 POST 搞查询,那就得具体看代码逻辑了。

4)缓存机制不同:GET 请求能被浏览器和 CDN 缓存,适合图片、静态页面这类不常变的资源。POST 请求默认不缓存,每次都会打到服务器。

相关推荐
●VON2 小时前
HarmonyOS应用开发实战(基础篇)Day10 -《鸿蒙网络请求实战》
网络·学习·华为·harmonyos·鸿蒙·von
cheems95272 小时前
【网络原理】网络编程基础:TCP Echo Server 的底层逻辑与实现
网络·tcp/ip·php
青山是哪个青山3 小时前
Linux 基础与环境搭建
linux·服务器·网络
huohaiyu8 小时前
从URL到页面的完整解析流程
前端·网络·chrome·url
winfreedoms10 小时前
Puppypi——hiwonder-toolbox中配置文件解析
网络·智能路由器
Elastic 中国社区官方博客12 小时前
使用 Elastic 进行网络监控:统一网络可观测性
大数据·开发语言·网络·人工智能·elasticsearch·搜索引擎·全文检索
德迅云安全-小潘13 小时前
德迅零域(微隔离):破解云时代横向渗透困局的“手术刀”
网络·数据库·安全
敲代码的哈吉蜂13 小时前
高可用集群Keepalived
运维·服务器·网络·数据库
盟接之桥14 小时前
盟接之桥说制造:从客供的外在共生到内在的身心合一
运维·服务器·网络·人工智能·制造