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 请求默认不缓存,每次都会打到服务器。

相关推荐
星夜夏空9933 分钟前
网络编程(1)
服务器·网络
上海云盾-小余1 小时前
中小站点防护避坑:低价高防服务存在的各类安全短板剖析
网络·爬虫·安全·ddos
X7x53 小时前
跨厂商路由引入(重发布)实战指南:华为、华三、思科的逻辑差异与配置避坑
网络协议·信息与通信·信号处理·实施路由引入
数据知道3 小时前
邮件安全实战:SPF/DKIM/DMARC 配置与钓鱼绕过
网络·安全·web安全·网络安全·邮件安全
猫头_3 小时前
AI 流式传输工程指南:有了 EventSource 为何还要 Fetch?
javascript·http·llm
玩转4G物联网3 小时前
FS800DTU 新品上线|免费使用 DMP 设备管理平台,支持远程批量配置 & OTA 升级
物联网·网络协议·tcp/ip·云平台·核心板·fs800dtu·iot管理平台
王莎莎-MinerU3 小时前
MCP 解决的是工具接入,科研 Agent 还缺的是科学证据接口标准化
开发语言·网络·人工智能·深度学习·pdf·c#·php
Chloeis Syntax4 小时前
JAVAEE初阶 --- 构造HTTP请求
网络·网络协议·http·postman
砚凝霜4 小时前
软考网络工程师|第 1 章 计算机网络基础 完整备考笔记
网络·笔记·计算机网络
rcms152702692184 小时前
NIKON 4S019-394 接口模块
网络