浅谈在HTTP中GET与POST的区别

从 HTTP 报文来看:

GET请求方式将请求信息放在 URL 后面,请求信息和 URL 之间以 ?隔开,请求信息的格式为键值对,这种请求方式将请求信息直接暴露在 URL 中,安全性比较低。另外从报文结构上来看,由于请求信息放置在 URL 中,因此请求报文中不需要报文体。

而POST 请求方式将请求信息放置在报文体中,想要获得请求信息必须先解析报文,因此安全性较 GET 方式要高一些(但事实上,要获得报文体中的信息也是很容易的,因此安全性上两者并没有太多的区别,具体解决传输过程中的安全性问题还要靠 HTTPS),此外 POST 的请求报文中含有报文体。

由于 GET 中的请求信息放置在 URL 中,因此是有长度限制的,因为 URL 本身是有长度限制的。POST 中的请求信息是放置在报文体中的,因此对数据长度理论上是没有限制的。

从数据库层面来看:

幂等性的定义:对数据库的一次操作和多次操作获得的结果是一致的,则认为符合幂等性。

安全性的定义:对数据库的操作没有改变数据库中的数据,则认为符合安全性。

GET 请求方式符合幂等性和安全性,GET请求方式是做查询操作,因此不会改变数据库中原有的数据,认为符合安全性,事实上 GET 请求可能会出现多次请求的结果不一致(例如在两次请求中间对数据库中的数据做了更改),从这来说不符合幂等性的定义,但是因为 GET 请求只是查询数据库,不会对数据库做任何更改,因此也可以认为是幂等的。

POST 请求方式是既不幂等也不安全,首先 POST 请求方式是往数据库提交数据的,因此会改变数据库中的数据。其次,POST 请求方式每次获得的结果都可能不一样,因为 POST 请求是作用在上一级的 URL 上的,每一次请求都会添加一份新的资源,或者修改资源信息。

相关推荐
AI砖家5 分钟前
验证码与接口防刷完整落地方案
网络·人工智能·安全验证
阿文和她的Key8 分钟前
DeepInfer 与 TorchTPU 同日开源:供应商锁定的成本结构正在被重写
网络·人工智能·架构·开源
Raas10033 分钟前
MemT-1.0 接入设计指南:硬件核算、三方案选型与写入触发点
大数据·网络·人工智能·机器学习·数据挖掘·ai agent
大泽九章1 小时前
HTTP协议安全入门:从请求走私到CRLF
网络协议·安全·http
JoyCong19981 小时前
参数测评:ToDesk个人版、团队版、企业版的设备数、并发通道与安全能力对比
运维·服务器·网络·安全·智能手机·远程工作
zxanz11 小时前
多域名、泛域名 SSL 怎么选?避开证书采购的溢价陷阱
服务器·网络协议·ssl
似是燕归来1 小时前
Rtthread OS 功能开发之 socket tcp协议程序开发
网络·网络协议·tcp/ip·rtthread
Brookty1 小时前
网络原理|第三阶段:MTU、TCP 分段、IPv4 分片与重组及路径 MTU 发现
网络·ip
肖永威1 小时前
python版微电网仿真工具的前端托管选型:从http.server到FastAPI StaticFiles
前端·python·http·fastapi
wjkjpcba2 小时前
工业以太网通信板PCBA厂家怎么选?接口器件与焊接工艺解析
网络·smt贴片加工·pcba贴片加工厂·机器人pcba